Comment détecter le périphérique USB dans Android
J'ai hôte USB périphérique android pour cela j'ai besoin de connecter le dispositif USB. pour détecter le périphérique usb à l'ordinateur hôte j'ai écrit à la suite du code.
public class ReadData extends Activity {
UsbManager usbManager;
PendingIntent mPermissionIntent;
UsbDevice usbDevice;
Intent intent;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_read_data);
usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
final String ACTION_USB_PERMISSION =
"com.example.udevice.USB_PERMISSION";
IntentFilter filter = new IntentFilter("android.hardware.usb.action.USB_ACCESSORY_ATTACHED");
registerReceiver(mUsbReceiver, filter);
}
private static final String ACTION_USB_PERMISSION =
"com.example.udevice.USB_PERMISSION";
private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
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 ");
}
}
}
}
};
et manifeste est comme ci-dessous:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.udevice"
android:versionCode="1"
android:versionName="1.0" >
<uses-feature android:name="android.hardware.usb.host" />
<uses-sdk
android:minSdkVersion="12"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".ReadData"
android:label="@string/title_activity_heat_con" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
</activity>
</application>
</manifest>
device_filter.xml
<resources>
<usb-device vendor-id="67b"
product-id="2303"/>
</resources>
au-dessus de fichier xml, j'ai ajouté les attributs de périphérique. Je suis dans l'attente d'une diffusion de l'intention à chaque fois que le périphérique USB connecté à l'appareil hôte. mais il n'est pas le cas. Quel est le problème avec le code ci-dessus.
Merci
shiv
s'il vous plaît pouvez-vous poster le statut de la question.
Avez-vous trouvé une solution?
Avez-vous trouvé une solution?
OriginalL'auteur Prasad | 2012-10-11
Vous devez vous connecter pour publier un commentaire.
Je pense que vous devez ajouter:
Il est décrit ici
OriginalL'auteur Uriel Frankel
Il est onething vous le faites mal.
Le vendor id et l'id de l'appareil doit être en décimales sont pas dans l'hex. Par exemple, vous devez définir comme suit
J'ai converti l'identifiant de votre appareil et le fournisseur d'id à partir de l'hex décimal
Laissez-moi savoir si cela aide
OriginalL'auteur Durairaj Packirisamy