android - 在 android 2.3.4 中使用 ADK 在(非 Activity )类中获取 UsbManger 的实例

标签 android usb android-context adk accessory

我正在尝试让 android ADK 在我的 Activity 的另一个包中的库中工作,为此我需要各种权限/各种事物的实例。 我尝试将 Activity 上下文传递给函数然后运行:

public void setup(Context context)
{
    mManager = UsbManager.getInstance(context);
    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];
        openAccessory(mAccessory);
    }
}

但这会使应用程序崩溃,即使除了第一行以外的所有内容都被注释掉了。我不完全确定我做错了什么,如果有任何帮助,我将不胜感激……(该函数被调用并传递给“this”)

最佳答案

对我有用的是在将元素 [0] 分配给 mAccessory 之前检查 accessoryList 是否为 null。

    UsbAccessory mAccessory = (accessoryList == null ? null : accessoryList[0]);

希望您在此期间解决了一些问题。

关于android - 在 android 2.3.4 中使用 ADK 在(非 Activity )类中获取 UsbManger 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6814218/

相关文章:

android - Android 上的 USB 音频类设备

c# - USB 条码扫描器和 WM_KEYDOWN

linux - 如何在 linux 内核编程中从 'device struct' 获取 'dev_t'?

Android:确定当前上下文以显示警报

Android工作室错误 "Unsupported Modules Detected: Compilation is not supported for following modules"

java - 如何在 Android 中从数组中提取字符串?

android - 在 Android 中,预装的应用程序总是无法卸载?

android - Cordova 3.4.0 : Camera. getPicture() 从 GALLERY 中选择时返回编码的 URI

android - 从另一个类访问 onCreate 中的 ArrayAdapter

java - 线程和上下文之间的问题 - Android