我正在按照以下步骤使用ADK通过Android Studio控制mbed
但是他们的mbed adkport代码(向下滚动到adkport超链接)需要这些导入
import com.android.future.usb.UsbAccessory;
import com.android.future.usb.UsbManager;
Run Code Online (Sandbox Code Playgroud)
我注意到另一个线程建议开发人员的解决方案是将其切换到android.hardware.usb,但是当我这样做时,由于基于硬件的软件包不支持getAccessory和getInstance符号,因此3行不同
这个问题有解决方案吗?我无法解决
我尝试按照替换代码的步骤使用android.hardware.usb进行替换,但是我仍然遇到了他们自己的android开发人员例程的问题
//mManager = UsbManager.getInstance(context);
UsbManager mManager = (UsbManager) getSystemService(Context.USB_SERVICE);
Run Code Online (Sandbox Code Playgroud)
但是现在它无法识别getSystemService
这是失败的地方。
public void setup(Context context)
{
//mManager = UsbManager.getInstance(context);
UsbManager mManager = (UsbManager) getSystemService(Context.USB_SERVICE); //<-----
UsbAccessory[] accessoryList = mManager.getAccessoryList();
PendingIntent mPermissionIntent = PendingIntent.getBroadcast(context, 0,
new Intent(ACTION_USB_PERMISSION), 0);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
context.registerReceiver(mUsbReceiver, filter);
mManager.requestPermission(accessoryList[0], mPermissionIntent);
if (accessoryList[0] != null) {
mAccessory = accessoryList[0];
if(mManager.hasPermission(mAccessory))
{
openAccessory(mAccessory);
}
}
}
Run Code Online (Sandbox Code Playgroud)
getSystemService()是一种可以从使用活动的activity非活动类内部或非活动类内部调用的方法。context
由于您的函数setup()应该通过传递 a 来调用Context,
usbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE);因此可以解决您的问题。
| 归档时间: |
|
| 查看次数: |
2253 次 |
| 最近记录: |