Я пытаюсь обнаружить Включить USB-хранилище с помощью BroadcastReceiver, хотя я могу обнаружить USB-соединение, используя действие android.intent.action.UMS_CONNECTED
и
отключен с помощью действия android.intent.action.UMS_DISCONNECTED.
Как я могу обнаружить USB-хранилище?
Android: как обнаружить "Включить USB-накопитель"?
Ответ 1
Ниже показано, как я устанавливаю/монтирует карту памяти. Вы можете изменить его, чтобы проверить удаленные/снятые. Я делаю это, зарегистрировав BroadcastReceiver, чтобы получить "события монтирования", затем проверьте, в каком состоянии находится карта памяти. Если он не установлен и не находится во время проверки (состояние во время установки карты снова), оно размонтируется или карта была удалена.
public class MemCardReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
onMemcardMounted();
}
else if (!Environment.getExternalStorageState().equals(Environment.MEDIA_CHECKING)){
onMemorycardUnMounted();
}
}
private void onMemorycardUnMounted() {}
private void onMemcardMounted() {}
}
И в ManifestFile
<receiver android:enabled="true" android:exported="true" android:name="the.name">
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<action android:name="android.intent.action.MEDIA_UNMOUNTED" />
<data android:scheme="file" />
</intent-filter>
</receiver>
Есть несколько разных состояний проверить это, если есть какие-либо другие заявленные. удален
Ответ 2
Я думаю, что android.Intent.action.ACTION_MEDIA_EJECT транслируется, когда пользователь берет используемое USB-хранилище и ACTION_MEDIA_MOUNTED, когда он выключен.