1

私は自分のアクティビティから別のパッケージのライブラリで動作する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」が渡されます)

4

1 に答える 1

1

私にとってうまくいったのは、要素 [0] を mAccessory に割り当てる前に、accessoryList が null かどうかを確認することでした。

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

それまでの間、何かを整理していただければ幸いです。

于 2013-01-17T21:15:29.197 に答える