java – Android:如何检测“打开USB存储”广播?

我正在尝试使用broadcastReceiver来检测打开USB存储设备,尽管我可以检测使用 android.intent.action.UMS_CONNECTED操作连接的USB

使用android.intent.action.UMS_disCONNECTED操作断开连接.
如何检测USB存储?

解决方法

以下是如何检查存储卡是否已安装/卸载.您可以更改它以检查已删除/已留下.我通过注册一个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>

有几个不同的状态checkout this如果还有其他的说法.去除

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...