ボタンを押すだけで定義済みの 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 インターフェイスを取得できません。
誰かが私を助けることができますか?
前もって感謝します!