1

ユーザーのBluetoothの発見可能性/可視性のタイムアウトを「タイムアウトしない」に要求するアプリを作成しています。

次のコードを使用して、ユーザーに現在の設定を変更するように依頼します。

Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);           
startActivity(discoverableIntent);

ただし、Bluetoothの発見可能性がすでにオンになっている場合は、ユーザーに迷惑をかけたくありません。

デバイスの現在の発見可能性タイムアウトを取得する方法はありますか?

4

2 に答える 2

2

以下を使用できます。

BluetoothAdapter ba = BluetoothAdapter.getDefaultAdapter();
if (ba.getScanMode() != BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE)
{
    //Launch the intent to set timeout
}

また、アダプタがオンになっていることを確認する必要があります。

于 2012-06-11T12:26:07.590 に答える
0

タイムアウトとして秒数を返す隠しgetDiscoverableTimeout関数があります。BluetoothAdapterリフレクションでアクセスできます。

try {
    java.lang.reflect.Method method;
    method = bluetoothAdapter.getClass().getMethod("getDiscoverableTimeout");
    int value = (int) method.invoke(bluetoothAdapter);
    // ... use the value
}
catch (Exception ex) {
    // ... error handling
}

これは非表示の機能であるため、いつか禁止または削除される可能性があることに注意してください。

于 2019-06-26T16:01:06.343 に答える