Android-Bluetoothを常にオンにする方法
質問
AndroidでのBluetooth開発に関する2つの質問:
-
AndroidでBluetoothを常に有効にする方法はありますか(アプリケーションでデバイスの検出フェーズが長くなる可能性があります)。私が見る限り、デフォルト値は120秒からのカウントダウンです。
-
オープンソースのBluetooth API実装は存在しますか?
他のヒント
Bluetoothを常にオンにすることは、長い検出遅延(「バッテリ寿命」の観点から)が唯一の懸念事項である場合、良い決定ではないかもしれません。
サードパーティのBluetooth APIに関しては、 iAnywhereだけを聞いたことがあります。 Blue SDK (Sybaseから、無料ではない、評価版のみが利用可能)、これは system / bluetooth および bluezから将来サポートされる機能の一部をカバーしますパッケージ。
Androidの Bluetoothロードマップによると、Javaなどの待望のほとんどAPI、Bluetooth 2.1 + EDRは、将来のある時点で実装されます。
プロジェクトの成功をお祈りします。
2.3.6では、遅延0を設定することで、デバイスを常に表示できます:
Intent di = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
di.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
Linuxの Bluez スタックは、オープンソースの実装です。 Windowsでも使用できますが、APIはLinuxでより完全になります。
「Bluetoothを常にオンにする」と言うときは、常に他のデバイスを検出しようとしていますか?
ほとんどのBluetoothチップにはディープスリープモードがあります。このモードでは、ほとんどのチップがダウンし、確立されたリンクのアクティビティをチェックするために起動します。何かをする(検出、接続を行う)か、既存のリンクにアクティビティがある場合にのみ、フルパワーで起動します。
ええ、Bluetoothが完全にオフの場合よりも多くのバッテリー電力を使用しますが、完全な吸血鬼ではありません。
private void ensureDiscoverable() {
if(D) Log.d(TAG, "ensure discoverable");
if (mBluetoothAdapter.getScanMode() !=
BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(discoverableIntent);
}
BlueCove は、Java用のオープンソースのBluetooth実装です。
多くの異なるマシンで動作し、正しい場合はどこかにAndroid互換バージョンが潜んでいます。