小编PKa*_*dam的帖子

如何使用UsbManager检测连接的USB设备?

我是Android编程的新手,我的主要目标是使用FT200XD USB至I2C桥接器通过USB与MCU进行通信。

首先,我试图通过UsbManager检测连接的USB设备。据我了解,在创建弹出窗口时,应该询问用户的连接权限,但不会询问权限。在调试过程中,很明显该控件不会进入广播接收器部分。

我参考了一些示例代码片段,并在下面编写了代码。我不知道我在做什么错。

我已经下载了一个名为“ USB host Controller”的应用程序,它可以检测到FT200XD。这意味着我的平板电脑具有USB主机功能。如果您可以指出正确的方向,或者可以共享整个工作代码,那就太好了。

我的代码如下:

Java文件:

     @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_fullscreen);


        mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);

        mPermissionIntent= PendingIntent.getBroadcast(this, 0, new  Intent(ACTION_USB_PERMISSION), 0); 
        IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
        filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
        filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
        filter.addAction(UsbManager.EXTRA_PERMISSION_GRANTED);
        filter.addAction(ACTION_USB_PERMISSION);
        registerReceiver(mUsbReceiver, filter);

        }



 // Broadcast receiver

        public class  mUsbReceiver extends BroadcastReceiver { 

            public void onReceive(Context context, Intent intent) {


                Toast.makeText(getApplicationContext(), 
                  "Inside USB Broadcast", Toast.LENGTH_SHORT).show();

            }
        }
Run Code Online (Sandbox Code Playgroud)

清单文件部分:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.usb"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="12"
        android:targetSdkVersion="19" />

     <uses-feature android:name="android.hardware.usb.host" /> …
Run Code Online (Sandbox Code Playgroud)

usb android

5
推荐指数
1
解决办法
9967
查看次数

标签 统计

android ×1

usb ×1