Android: как узнать, когда SD-карта не установлена - PullRequest
1 голос
/ 06 августа 2011

Я работаю над приложением, которое читает носитель с SD-карты и воспроизводит его. Однако, есть определенные события, когда SD-карта физически извлекается из устройства или устройство подключено к компьютеру и SD -карта монтируется на компьютере. Всякий раз, когда SD-карта удаляется, генерируется уведомление, и его можно увидеть в панели уведомлений. Я хочу, чтобы мое приложение отвечало на эти уведомления. Например, всякий раз, когда пользователь физически удаляет карту или подключает ее к компьютеру, я хочу, чтобы мое приложение отображало сообщение типа «SD-карта удалена». Есть ли способ ответить на эти уведомления ??

Ответы [ 2 ]

2 голосов
/ 06 августа 2011

Я хочу, чтобы мое приложение отвечало на эти уведомления.

Нет, вы этого не делаете.Вы хотите ответить на трансляцию Intents, которая также используется для создания этих Notifications.

Посмотрите документацию для Intent класса , в наборе ACTION_MEDIA_*трансляций.

1 голос
/ 21 августа 2013

Я знаю, что вопрос старый, но в итоге я искал этот код, поэтому вот он.

В файле manifest.xml зарегистрируйте получателя:

<receiver android:name="it.myapp.receiver.OnMediaMountedReceiver" android:enabled="true">
    <intent-filter>
        <action android:name="android.intent.action.MEDIA_MOUNTED" />
        <data android:scheme="file"/>
    </intent-filter>
</receiver>

Затем создайте класс получателя:

public class OnMediaMountedReceiver extends BroadcastReceiver {

private static final String TAG = OnMediaMountedReceiver.class.getSimpleName();

@Override
public void onReceive(Context arg0, Intent intent) {
    Log.i(TAG, "Media mounted!");
    if (intent != null && intent.getData() != null) {
        Log.i(TAG, "Media path: " + intent.getDataString());
    }
    }
}
...