要解决“标准用户账户未被要求开启 USB 调试权限”的问题,可以使用以下代码示例来请求USB调试权限:
private static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";
private UsbManager usbManager;
private PendingIntent permissionIntent;
// 在Activity或Fragment的onCreate方法中初始化UsbManager和Permission Intent
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
permissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0);
}
// 在Activity或Fragment的onResume方法中请求USB调试权限
@Override
protected void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
registerReceiver(usbPermissionReceiver, filter);
UsbDevice device = ...; // 获取USB设备对象
if (usbManager != null) {
usbManager.requestPermission(device, permissionIntent);
}
}
// 在Activity或Fragment的onPause方法中取消注册USB权限广播接收器
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(usbPermissionReceiver);
}
// 创建USB权限广播接收器
private final BroadcastReceiver usbPermissionReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (ACTION_USB_PERMISSION.equals(action)) {
synchronized (this) {
UsbDevice device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
boolean permissionGranted = intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false);
if (permissionGranted && device != null) {
// USB权限已被授予,可以进行USB调试操作
// 在这里执行USB调试相关的代码
} else {
// USB权限未被授予,无法进行USB调试操作
}
}
}
}
};
以上代码示例演示了在一个Activity或Fragment中请求USB调试权限,并通过广播接收器获取USB权限授予的结果。根据结果,可以执行USB调试相关的操作。请注意,上述代码中的...
需要替换为正确的获取USB设备对象的代码。