【发布时间】:2012-04-30 22:23:06
【问题描述】:
我需要实现 android 中已经存在的 sd 卡移除通知,我需要知道它是如何完成的?任何示例代码或教程都会有很大帮助。
【问题讨论】:
标签: android storage external sd-card
我需要实现 android 中已经存在的 sd 卡移除通知,我需要知道它是如何完成的?任何示例代码或教程都会有很大帮助。
【问题讨论】:
标签: android storage external sd-card
系统会广播各种事件的Intents,其中很多是关于SD卡(外部媒体)状态变化的。
因此,您只需为正确的 Intent 设置一个 BroadcastReceiver。查看this 页面以供参考。您正在寻找 ACTION_MEDIA_* 操作。
【讨论】:
您需要使用广播接收器来移除 SD 卡
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//If SD Card is Removed it will Come Here
//Intent service = new Intent(context, WordService.class);
//context.startService(service);
}
}
在您的 Android 清单文件中添加接收器,如下面的代码。
<receiver android:name="MyReceiver " >
<intent-filter>
<action android:name="android.intent.action.MEDIA_EJECT" />
</intent-filter>
</receiver>
【讨论】:
ACTION_MEDIA_EJECT 在用户即将移除 SD 卡时广播(类似于 Windows 上的“安全设备移除”); ACTION_MEDIA_REMOVED 在卡被实际移除后发送。据我所知,不需要任何权限。
MEDIA_REMOVED 或MEDIA_EJECT。
*EJECT 在*REMOVED 之前,但用户的删除尝试可能会中止。
*EJECT 广播时关闭它们。