Pracuję z niestandardowym skanerem linii papilarnych OTG. Chcę sprawdzić, czy OTG jest podłączony do mojego urządzenia z Androidem, czy nie w określonej aktywności Android.Jak wykryć, że urządzenie z Androidem jest połączone z USB OTG lub nie programowo
Odpowiedz
public class BootUpReceiver extends BroadcastReceiver {
private static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";
String TAG = "OTG ";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
// Log.e("USB", "Decive Connected -> " + action);
//Initilizing globel class to access USB ATTACH and DETACH state
final GlobalClass globalVariable = (GlobalClass) context.getApplicationContext();
if (action.equalsIgnoreCase("android.hardware.usb.action.USB_DEVICE_ATTACHED")) {
UsbDevice device = (UsbDevice) intent
.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if(device != null) {
int vendorID = device.getVendorId();
int productID = device.getProductId();
if(String.valueOf(productID).equalsIgnoreCase(context.getString(R.string.productID/*product id of your specific device*/))&& (String.valueOf(vendorID).equalsIgnoreCase(context.getString(R.string.vendorID/*vendor id of your specific device*/)))){
//If Product and Vendor Id match then set boolean "true" in global variable
globalVariable.setIs_OTG(true);
}else{
globalVariable.setIs_OTG(false);
}
}
} else if (action.equalsIgnoreCase("android.hardware.usb.action.USB_DEVICE_DETACHED")) {
//When ever device Detach set your global variable to "false"
globalVariable.setIs_OTG(false);
} }
od wszelkich działań można nazwać globel zmienna, by sprawdzić aktualny stan USB:
final GlobalClass globalVariable = (GlobalClass) getApplicationContext();
if (globalVariable.is_OTG()) {
//Perform your functionality
}
GlobalClass:
public class GlobalClass extends Application {
private boolean is_OTG = false;
public boolean is_OTG() {
return is_OTG;
}
public void setIs_OTG(boolean is_OTG) {
this.is_OTG = is_OTG;
}
}
manifist:
<application
android:name="com.GlobalClass"
odbiornik:
<receiver
android:name=".BootUpReceiver"
android:enabled="true" >
<!-- <intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>-->
<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" />
<action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" />
</receiver>
Czy to źródło działa dla połączenia * USB OTG * Pendrive? Jak mogę uzyskać całkowitą dostępną przestrzeń, jeśli uda mi się uzyskać udane połączenie? A jak uzyskać identyfikator dostawcy urządzenia i identyfikator produktu po nawiązaniu połączenia? Właściwie muszę podłączyć * USB OTG * pendrive i uzyskać dostępny rozmiar z podłączonego urządzenia. Każda pomoc zostanie doceniona. –
Użyj powyższego kodu, gdy zostanie dołączone OTG, tygiel będzie nadawał, a Ty możesz pobrać identyfikator użytkownika i identyfikator dostawcy. – Hanan
Pobierz identyfikator użytkownika i identyfikator dostawcy, który jest w porządku. Ale moim drugim wymaganiem jest uzyskanie wszystkich dostępnych folderów i uzyskanie całkowitej dostępnej przestrzeni podłączonego urządzenia USB. Jak mogę to zrobić? –
Drogi, ponieważ podłączasz zewnętrzne urządzenie OTG, musisz zintegrować SDK urządzenia, aby uzyskać szczegółowe informacje.
- 1. Programowo podłącz i odłącz urządzenie z Androidem
- 2. Programowo zablokujesz urządzenie z Androidem
- 3. Android USB OTG: programowo wyłącz zasilanie portu
- 4. Jak programowo identyfikować urządzenie z Androidem?
- 5. Moc pobierana z urządzenia USB do tabletu z Androidem przez kabel OTG
- 6. Wykryj programowo, jeśli urządzenie z Androidem może szyfrować pamięć masową.
- 7. Urządzenie wirtualne z Androidem
- 8. Podłącz urządzenie USB do emulatora Androida?
- 9. Jak mogę uruchomić urządzenie USB z C#?
- 10. Urządzenie z Androidem nie otrzymuje pakietu multicastowego
- 11. Podłącz dwa telefony z Androidem za pomocą kabla USB
- 12. Ponownie uruchom urządzenie z Androidem
- 13. Jak określić, czy podłączone urządzenie USB jest dyskiem flash USB?
- 14. Czy można wykryć debugowanie USB na urządzeniach z systemem Android?
- 15. Urządzenie z Androidem nie wyświetla się w DDMS
- 16. Odwracanie tetheringu z kilku urządzeń z Androidem przez USB
- 17. Jak programowo odłączyć i odłączyć dowolne urządzenie USB?
- 18. Jak uruchomić usługę, gdy urządzenie z Androidem jest włączone?
- 19. Jak sparować lub usunąć sparowane urządzenie bluetooth programowo na Androidzie?
- 20. Jak wykryć, kiedy urządzenie audio jest odłączone w CoreAudio?
- 21. Poziome urządzenie recyklingowe z Androidem wrap_content
- 22. Przyczyna problemów z Androidem "Usb Device Not Found"?
- 23. Programowo odblokować telefon z Androidem?
- 24. Wykrywanie, czy urządzenie używa USB 3.0
- 25. Zestaw głośnomówiący z Androidem programowo
- 26. Jak pobierać i pobierać dane z urządzenia USB za pomocą MTP (Urządzenie nie jest aparatem)
- 27. Wykryj, kiedy urządzenie USB jest podłączone w C
- 28. W jaki sposób urządzenie z Androidem może programowo wywnioskować adres IP urządzenia Linux, z którym jest powiązane?
- 29. Wykrywanie, czy urządzenie z Androidem jest telefonem lub tabletem z javascript
- 30. Jak rozpoznać urządzenie pamięci USB UNIQUELY?
Czy ktoś ma rozwiązanie tego? – Hanan
Czy próbowałeś już [hosta USB] (https://developer.android.com/guide/topics/connectivity/usb/host.html)? być może odbiornik 'android.hardware.usb.action.USB_DEVICE_ATTACHED' pomoże. jeśli potrzebujesz komunikacji do przodu [TUTAJ] (http://blog.blecentral.com/2015/10/01/handling-usb-connections-in-android/) masz dobry przykład (dla Arduino, ale głównie o stronie Android-a). ale jeśli jest to "specyficzne urządzenie z Androidem", to może istnieje niestandardowy ROM lub masz "specyficzny" dokument dla tego urządzenia. – snachmsm
Tak @snachmsm Używam tej samej techniki. Po podłączeniu urządzenia sprawdzam identyfikator dostawcy i identyfikator urządzenia, a następnie odpowiednio ustawiam stan urządzenia. – Hanan