android12 监听U 盘插拔intent
时间: 2023-08-08 08:14:06 浏览: 43
要监听 Android 12 上的 U 盘插拔 Intent,你需要使用以下代码:
在 AndroidManifest.xml 文件中添加以下权限:
```
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
```
在你的 Activity 中,注册 BroadcastReceiver 监听 U 盘插拔 Intent:
```
private final BroadcastReceiver usbReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action != null) {
switch (action) {
case Intent.ACTION_MEDIA_MOUNTED:
// U 盘已经插入,可以进行相关操作
break;
case Intent.ACTION_MEDIA_REMOVED:
// U 盘已经拔出,可以进行相关操作
break;
}
}
}
};
@Override
protected void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
filter.addAction(Intent.ACTION_MEDIA_REMOVED);
filter.addDataScheme("file");
registerReceiver(usbReceiver, filter);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(usbReceiver);
}
```
注意,从 Android 11 开始,需要在 AndroidManifest.xml 中声明 MANAGE_EXTERNAL_STORAGE 权限才能访问外部存储。在 Android 12 中,这个权限已经变成了一个特殊权限,需要在设备设置中手动授权才能使用。