2012-12-17 34 views
0

我正在使用Eclipse,並且已在我的Android手機中安裝了該應用程序。USB偵測應用程序在Android 4.0.3中沒有任何顯示當我連接任何USB時Smile Pro

主要活動碼:

包com.example.usbdetection;

import android.app.Activity; 
import android.app.PendingIntent; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.content.IntentFilter; 
import android.hardware.usb.UsbDevice; 
import android.hardware.usb.UsbManager; 
import android.os.Bundle; 
import android.util.Log; 

public class MainActivity extends Activity { 



UsbManager usbManager; 
    PendingIntent mPermissionIntent; 
    UsbDevice usbDevice; 
    Intent intent; 
    final String ACTION_USB_PERMISSION = "com.example.usbdetection.USB_PERMISSION"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     usbManager = (UsbManager) getSystemService(Context.USB_SERVICE); 
     mPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(
       ACTION_USB_PERMISSION), 0); 

     IntentFilter filter = new IntentFilter(); 
     filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED); 
     filter.addAction(ACTION_USB_PERMISSION); 
     registerReceiver(mUsbReceiver, filter); 
    } 

private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 

     String action = intent.getAction(); 
     if (ACTION_USB_PERMISSION.equals(action)) { 
      synchronized (this) { 

       usbDevice = (UsbDevice) intent 
         .getParcelableExtra(UsbManager.EXTRA_DEVICE); 
       usbManager.requestPermission(usbDevice, mPermissionIntent); 

       if (intent.getBooleanExtra(
         UsbManager.EXTRA_PERMISSION_GRANTED, false)) { 
        if (usbDevice != null) { 
         // call method to set up device communication 

         int deviceId = usbDevice.getDeviceId(); 
         int productId = usbDevice.getProductId(); 
         Log.i("device id", "****" + deviceId); 
         Log.i("product id", "****" + productId); 

        } else { 
         Log.i("device id", "No USB device"); 
        } 

       } else { 
        Log.d("shiv", "permission denied for device "); 
       } 
      } 
     } 
    } 
}; 

}

清單文件:

<uses-feature android:name="android.hardware.usb.host" /> 

<uses-sdk 
    android:minSdkVersion="12" 
    android:targetSdkVersion="17" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.example.usbdetection.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> 
     </intent-filter> 

     <meta-data 
      android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" 
      android:resource="@xml/device_filter" /> 
    </activity> 
</application> 

當我運行我的應用程序和連接它表明沒有任何USB。怎麼了?。

任何幫助,將不勝感激:)

回答

0

我已經找到了解決辦法:

首先,我紮根在我的Android設備。 然後我在等/權限添加了一個名爲android.hardware.usb.host.xml文件夾,其中包括許可

<permissions> 
<feature name="android.hardware.usb.host" /> 
</permissions> 

現在它支持主機API。

相關問題