Android:如何检测"打开USB存储"广播?

Bas*_*ous 10 java android broadcastreceiver

我试图使用BroadcastReceiver 检测打开USB存储,虽然我能够检测到使用android.intent.action.UMS_CONNECTED操作连接的USB

使用android.intent.action.UMS_DISCONNECTED操作断开连接.


我如何检测USB存储

giZ*_*Zm0 3

以下是我检查存储卡是否已安装/卸载的方法。您可以将其更改为检查已删除/插入。我通过注册一个 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() {}
}
Run Code Online (Sandbox Code Playgroud)

并在 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>
Run Code Online (Sandbox Code Playgroud)

有几个不同的州检查这一点是否有任何其他类似的规定。已删除