2

私は、Androidデバイス(現在のテスト目的では、HTC Evo4GといくつかのオリジナルのMotorolaDroids)に依存するアプリケーションを作成しており、Bluetoothを介して300秒間検出できます。

私はAndroidバージョン2.0.1をターゲットにしているので、APIによると、最大300秒間検出可能性を有効にするようにユーザーに促すことができるはずです。DroidとEvoの両方で、プロンプトウィンドウに300秒が表示されますが、どちらも120秒後に終了します。

ユーザーにプロンプ​​トを表示するために使用したコードは次のとおりです。

private void makeDiscoverable() {
    Intent discoverableIntent = new Intent(
            BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
    discoverableIntent.putExtra(
            BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
    startActivity(discoverableIntent);
}

私はこのコードが実行されると確信しています。ただし、後で、発見可能性のステータスが変更されたとき(この場合は終了すると思います)のハンドラーがあり、次のようになります。

if (isDiscoverableChange(action)) {
            int discoverState = intent.getIntExtra(
                    BluetoothAdapter.EXTRA_SCAN_MODE, Short.MIN_VALUE);
            if (isDiscoverableState(discoverState)) {
                setItOrder();
                setUpScanAndDisplay();
            } else {
                discoverScheduler.cancel();
                itScheduler.cancel();
            }
        }

private boolean isDiscoverableChange(String action) {
    return BluetoothAdapter.ACTION_SCAN_MODE_CHANGED.equals(action);
}

private boolean isDiscoverableState(int state) {
    return state == BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE;
}

発見可能性モードが終了したときに実行される部分をコメントアウトしてみましたが、すべてが途中でキャンセルされた場合に備えて、発見可能性は実際には120秒後に終了します。

これはハードウェアの問題ですか、それともここで何か間違ったことをしていますか?

4

2 に答える 2

1

バグのようです:

問題15486:BluetoothAdapter.EXTRADISCOVERABLEが従わなかった http://code.google.com/p/android/issues/detail?id=15486

問題13361:BluetoothAdapter.EXTRA_DISCOVERABLE_DURATIONintentExtraは120秒の検出間隔を延長しません http://code.google.com/p/android/issues/detail?id=13361

2010年12月22日に最初に報告されましたが、まだ「新規」ステータスとしてリストされているため、これが修正されるとは思いません。

于 2012-06-07T16:23:12.123 に答える
1

DiscoverableTimeoutAndroidのタイムアウト以外にBluetoothの値があります。

通常、DiscoverableTimeoutファイル/system/etc/bluetooth/main.confでは120に設定されます。

あなたは書くべきです

DiscoverableTimeout = 0

/system/etc/bluetooth/main.confBluetoothタイムアウトを無効にするために。これにより、Androidのタイムアウトを120秒以上に延長できます。

于 2012-12-13T13:04:29.360 に答える