Android aletinize USBden bağlanan bir aletle otomatik bağlantı yapması ve aleti tanıması için gereken kod aşağıdaki gibidir.
private void USBBaglantilariniYap()
{
IntentFilter filter = new IntentFilter();
filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
registerReceiver(mUsbReceiver, filter);
}
@Override
protected void onNewIntent(Intent intent) {
USBBaglantilariniYap();
};
BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action)) {
// never come here(when attached, go to onNewIntent)
connectFunction();
} else if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action)) {
disconnectFunction();
}
}
};
Bunun yanısıra
res/xml/device_filter.xml dosyasını yaratıp içine aletle ilgili vendor-id bilgilerini girmeniz gerekmekte.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<usb-device vendor-id="0403" product-id="6001" class="0" subclass="0" protocol="0"></usb-device>
</resources>
AndroidManifest.xml altında da USB otomatik algılansın diye aşağıdaki ayarları yapmanız gerekiyor.
<activity
android:name="com.projeAdi.MainActivity"
android:label="@string/app_name" android:launchMode="singleTask">
<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>
Hiç yorum yok:
Yorum Gönder