我是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)