Android:如何知道SD卡何时卸载

时间:2011-08-06 18:21:01

标签: android notifications sd-card

我正在开发一个从SD卡中读取媒体并播放它的应用程序..但是,当SD卡从设备中物理移除或设备连接到计算机和SD时,有某些事件-card安装在计算机上。每当移除SD卡时,都会生成通知,并可在通知栏中看到。我希望我的应用程序响应这些通知。例如,每当用户物理移除卡或将其附加到计算机时,我希望我的应用程序显示“sd card removed”之类的消息..有没有办法回应这些通知?

2 个答案:

答案 0 :(得分:2)

  

我希望我的应用程序回复这些通知。

不,你没有。您想要回复广告Intents,广播Notifications也用于创建ACTION_MEDIA_*

在{{1}}广播操作集中查看documentation for the Intent class

答案 1 :(得分:1)

我知道问题已经过时但我最终在这里寻找这段代码,所以现在就是。

在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());
    }
    }
}