Получение экземпляра UsbManger в (неактивный) класс с ADK в Android 2.3.4 - PullRequest
1 голос
/ 25 июля 2011

Я пытаюсь заставить Android ADK работать в библиотеке в другом пакете из моей деятельности, для чего мне нужны различные разрешения / экземпляры различных вещей.Я попытался передать контекст действия в функцию и затем запустить:

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")

Ответы [ 2 ]

1 голос
/ 18 января 2013

Что мне помогло, так это проверка, равен ли accessoryList нулю, прежде чем присваивать элементу [0] mAccessory.

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

Надеюсь, вы что-то разобрались за это время.

0 голосов
/ 25 июля 2011

Вы под 2.3.4 или 3.1?Смотрите эту ссылку: http://developer.android.com/guide/topics/usb/accessory.html#usage

...