按照教程https://developer.android.com/guide/topics/connectivity/usb/host.html我将应用程序写入文本 . 当插入_2828455时,我的应用程序将自动运行 . 但我不想要它 . 插入 usb device 时如何阻止我的应用自动运行?

以下是我的广播接收器:

public class UsbPermissionReceiver extends BroadcastReceiver {
    private static final String TAG = "UsbPermissionReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (AppConstant.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) {
                        Log.w(TAG, "============");
                    }
                } else {
                    Log.w(TAG, "permission denied for device " + device);
                }
            }
        }
    }
}

注册接收器 activity

registerReceiver(mPermissionReceiver, filter);

But I find this receiver never run!

然后我尝试枚举设备以连接USB设备:

PendingIntent mPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent("com.android.example.USB_PERMISSION"), 0);

for (final UsbDevice usbDevice : mUsbManager.getDeviceList().values()) {
    if (usbDevice.getVendorId() == 8263
            && usbDevice.getProductId() == 768) {
        if (mUsbManager.hasPermission(usbDevice)) {
            Log.i("===", "=======================");
            startService(new Intent(AppConstant.SERVICE_ACTION));
        } else {
            Log.i("===", "00000000000000000000000");
            mUsbManager.requestPermission(usbDevice, mPermissionIntent);
        }
    }
}

delete manifest config . 因此我的应用程序无法在 usb device 插入时自动生成 . 但也有一个问题:如果我没有插入 usb device 应用程序不会再次请求许可并且沟通良好,否则它将再次请求许可 . 但我检查了默认值 . 我真的不明白,有人帮助我 .