3


ボタンを押すだけで定義済みの BT デバイスを接続する必要があります。
要件は、標準のソケット メソッドを使用する場合のように、ユーザーが通知ダイアログを受信しないことです。
私のプロジェクトでは、このソリューションを使用しました。コードは次のとおりです。

/**
 * Return system service to work with A2DP
 *
 * @return bluetooth interface
 */
private static IBluetoothA2dp getIBluetoothA2dp() {
    IBluetoothA2dp ibta = null;
    try {
        final Class serviceManager = Class.forName("android.os.ServiceManager");
        final Method getService = serviceManager.getDeclaredMethod("getService", String.class);
        final IBinder iBinder = (IBinder) getService.invoke(null, "bluetooth_a2dp");
        final Class iBluetoothA2dp = Class.forName("android.bluetooth.IBluetoothA2dp");
        final Class[] declaredClasses = iBluetoothA2dp.getDeclaredClasses();
        final Class c = declaredClasses[0];
        final Method asInterface = c.getDeclaredMethod("asInterface", IBinder.class);

        asInterface.setAccessible(true);
        ibta = (IBluetoothA2dp) asInterface.invoke(null, iBinder);
    } catch (final Exception e) {
        Log.e("Error " + e.getMessage());
    }
    return ibta;
}

Android 4.2 でアプリを起動するまではうまくいきました。getService() メソッドが「bluetooth_a2dp」キーを持つ IBinder を返さないため、IBluetoothA2dp インターフェイスを取得できません。

誰かが私を助けることができますか?

前もって感謝します!

4

2 に答える 2

0

自動ペアリングに関連する何かへの回答が必要な場合は、ここで私の回答を確認してください。 https://stackoverflow.com/a/30362554/3920157

于 2015-05-21T00:28:17.817 に答える