Có cách nào để phát hiện khi ổ USB flash được cắm vào thiết bị Android không? Tôi có thể phát hiện thẻ SD sử dụng bộ thu phát sóng nhưng nó không hoạt động đối với USB. Tôi muốn tránh bỏ phiếu.Android: Phát hiện ổ flash USB được cắm vào
mã để đăng ký nhận:
private void RegisterUpdateReceiver()
{
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.MEDIA_MOUNTED");
intentFilter.addDataScheme("file");
myReceiver = new MyReceiver();
this.registerReceiver(myReceiver, intentFilter);
}
đang nhận:
public class MyReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if (action.equals("android.intent.action.MEDIA_MOUNTED"))
{
// react to event
}
}
Logcat hiển thị một số sự kiện liên quan đến gắn kết USB, nhưng tôi không thể phát hiện điều này ở cấp SDK. Âm thanh như những gì bạn đang nói là đúng. W/MountService (931): getVolumeState (/ mnt/usbdisk): Khối lượng không xác định E/VoldConnector (931): Xử lý lỗi '605 Khối lượng trạng thái usbdisk/mnt/usbdisk thay đổi từ 3 (Kiểm tra) thành 4 (Đã gắn)' – Ravi
bất kỳ may mắn ở đây, tôi cũng sử dụng ACTION_MEDIA_REMOVED và người nhận khác có liên quan USB gắn kết và unmount ... nhưng không có gì là làm việc .. nhưng trong dấu nhắc lệnh nó hiển thị usb log? – CoDe
@Shubh: Câu trả lời bằng văn bản vẫn chính xác, như của Android 4.2. – CommonsWare