首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何获取Android 6+上的USB存储权限?

在Android 6及以上版本中,获取USB存储权限的步骤如下:

  1. 在AndroidManifest.xml文件中添加以下权限:
代码语言:txt
复制
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

这两个权限分别用于读取和写入外部存储器的内容。

  1. 在代码中请求USB存储权限:
代码语言:txt
复制
private static final int REQUEST_USB_PERMISSION = 1;

private void requestUsbPermission() {
    UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
    PendingIntent permissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0);
    usbManager.requestPermission(device, permissionIntent);
}

@Override
public void onResume() {
    super.onResume();
    IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
    registerReceiver(usbReceiver, filter);
}

@Override
public void onPause() {
    super.onPause();
    unregisterReceiver(usbReceiver);
}

private final BroadcastReceiver usbReceiver = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (ACTION_USB_PERMISSION.equals(action)) {
            synchronized (this) {
                UsbDevice device = (UsbDevice) intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
                if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
                    if (device != null) {
                        // 已获取USB存储权限,可以进行相关操作
                    }
                } else {
                    // 未获取USB存储权限
                }
            }
        }
    }
};

以上代码中,requestUsbPermission()方法用于请求USB存储权限,onResume()onPause()方法用于注册和注销广播接收器,usbReceiver广播接收器用于接收USB存储权限的授权结果。

  1. AndroidManifest.xml文件中注册广播接收器:
代码语言:txt
复制
<receiver android:name=".UsbReceiver">
    <intent-filter>
        <action android:name="android.hardware.usb.action.USB_PERMISSION" />
    </intent-filter>
</receiver>

这样,当用户插入USB设备时,系统会弹出一个对话框询问是否授权应用程序访问USB设备的存储权限。用户授权后,应用程序即可访问USB存储。

需要注意的是,USB存储权限只适用于外部存储器,不包括内部存储器。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券