Czy jest jakiś sposób, aby dowiedzieć się (programowo) w swojej działalności/aplikacji, że użytkownik podłączył swój telefon do komputera przez USB?Android: wykrywanie USB
Odpowiedz
Niektórzy ludzie zasugerował użycie UMS_CONNECTED
która jest nieaktualna jako ostatniej wersji Androida Inny problem z tym jest że to nie działa z urządzeniami MTP włączona
Inni sugerowali zastosowanie BatteryManager
dokładniej ACTION_BATTERY_CHANGED
jak również BATTERY_PLUGGED_AC
i BATTERY_PLUGGED_USB
jest to idealne rozwiązanie, jeśli chcesz de Sprawdź stan baterii lub ładowania urządzenia, ale nie jest to naprawdę dobry wskaźnik połączenia USB. Używanie menedżera akumulatora może się nie udać na starszych tabletach z Androidem, takich jak XOOM, karta ICONIA A510 i starsze tablety Asus.
czysto wykryć, że urządzenie zostało podłączone na komputerze można: użytkowania android.hardware.usb.action.USB_STATE
i connected
zamiast BatteryManager
rzeczy
przykładowy kod
public static boolean isConnected(Context context) {
intent = context.registerReceiver(null, new IntentFilter("android.hardware.usb.action.USB_STATE"));
return intent.getExtras().getBoolean("connected");
}
Hope this helps
był w stanie wykryć połączenie USB poprzez zarejestrowanie odbiornika nadawane przez następujące,
IntentFilter mIntentFilter = new IntentFilter(Intent.ACTION_UMS_CONNECTED); BroadcastReceiver bd = new intentReceiver(); registerReceiver(bd, mIntentFilter);
ja dostałem błąd w 'intentReceiver', więc możesz rozwinąć –
To nie działa dla mnie. Android 2.2, urządzenie => HTC Desire –
Nie działa, jeśli urządzenie używa protokołu MTP zamiast UMS (na przykład Galaxy Nexus używa protokołu MTP) – darkheir
manifest.xml:
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.ums_connected" />
</intent-filter>
</receiver>
MyReceiver:
public class MyReceiver extends BroadcastReceiver{
if (intent.getAction().equalsIgnoreCase(
"android.intent.action.UMS_CONNECTED")) {...}
}
To nie działa dla mnie. Android 2.2, urządzenie => HTC Desire –
@Heshan pls zobacz zaktualizowaną odpowiedź. – 66CLSjY
Ten kod MyReceiver nie ma nawet sensu .. a jeśli w definicji klasy? –
Jeśli wszystko, co chcesz do wykrywa, czy masz dostęp do sdcard, następnie następujące czynności będą działać:
private boolean canWriteToFlash() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
// Read only isn't good enough
return false;
} else {
return false;
}
}
thanx! ten kod działa, to jest to, czego potrzebuję. – Maep
Głównym problemem podczas sprawdzania android.intent.action.ums_connected
jest to, że urządzenia korzystające z protokołu MTP (np. Samsung Nexus Galaxy) nie otrzymują tej transmisji.
Dlatego używam inny sposób wykryć, gdy Smartphone jest podłączony lub odłączony:
sprawdzić stan batery. Istnieje intencja o nazwie ACTION_BATTERY_CHANGED
wywoływana, gdy zdarzenie ma miejsce na baterii. W tym celu znajdują się dodatkowe pola zawierające pewne informacje. Jednym z nich jest EXTRA_PLUGGED
:
Indicating whether the device is plugged in to a power source; 0 means it is on battery, other constants are different types of power sources.
Pozostałe stałe są BATTERY_PLUGGED_AC
i BATTERY_PLUGGED_USB
Więc z tej audycji można wiedzieć, czy Smartphone został podłączony USB, nawet jeśli używa protokołu MTP.
Aby wiedzieć, czy Smartphone jest odłączony ty juste trzeba sprawdzić, gdy zmienia się wartość EXTRA_PLUGGED
z BATTERY_PLUGGED_USB
do 0
To nie działa dla tabletów takich jak XOOM, gdzie moc i usb są dwoma różnymi portami. –
- 1. Wykrywanie stanu zasilania USB
- 2. Wykrywanie, czy urządzenie używa USB 3.0
- 3. Kakao: wykrywanie urządzeń USB według identyfikatora dostawcy
- 4. Android adb usb speed
- 5. Funkcje Android USB?
- 6. Windows 8 android sterownik USB
- 7. Android: wykrywanie fling gesty
- 8. Wykrywanie android Aktywny uruchamia
- 9. Wykrywanie Silent Sms android
- 10. Kamera internetowa USB w systemie Android
- 11. Jak włączyć debugowanie USB w systemie Android?
- 12. Android USB OTG: programowo wyłącz zasilanie portu
- 13. Debugowanie urządzenia Android Wear przez USB
- 14. Identyfikatory dostawców Android USB nieznanej marki
- 15. Android 4.0.3. Host USB - komunikacja z kamerą
- 16. Port Android Debugowanie portu USB Błąd przekierowania
- 17. Android Host USB - bulkTransfer() traci dane
- 18. Android USB host i ukryte urządzenia
- 19. Wykrywanie twarzy w systemie Android?
- 20. Android: Wykrywanie nieaktywności użytkownika/Wykrywanie klawiatury (z klawiatury programowej)
- 21. Debugowanie USB przez Wifi
- 22. Wykrywanie systemu Android na przyciskach w GridView
- 23. Wykrywanie usługi Android Wifi Direct Service
- 24. ANDROID - wykrywanie koloru za pomocą openCV - jak?
- 25. Wykrywanie oryginalnego serwisu UPnP dla systemu Android
- 26. Wykrywanie typu wyświetlania w systemie Android
- 27. Wykrywanie funkcji twarzy za pomocą OpenCV Android
- 28. Wykrywanie urządzeń Bluetooth w systemie Android - startDiscovery()
- 29. Android: Wykrywanie Kiedy Scrollview Odsłon dno
- 30. Jak określić, czy podłączone urządzenie USB jest dyskiem flash USB?
Niejasne od dokumentacji, co to faktycznie wykrywa. W moim przypadku próbuję zdiagnozować wadliwy kabel USB, gdzie czasami stan zasilania się nie zmienia, ale USB spada i wychodzi - to drugie, co próbuję wykryć. – Michael