25

Nexus 7 の第 1 世代は Bluetooth Low Energy をサポートしていないようです。少なくとも、チュートリアルの手順を正確に実行すると、

http://developer.android.com/guide/topics/connectivity/bluetooth-le.html

私は次のコードでアプリを終了しています:

 if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
    Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show();
    finish();
}

確かに、Bluetoothが有効になっていることを確認しました。

問題は、デバイスが Bluetooth Low Energy 規格をサポートしているかどうかを確認する方法です。

更新: Android 4.3 を使用しています

4

5 に答える 5

13

あなたのコードは本当に良いですが、次のコードを正確に追加しますか?

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

重要なコードは次のとおりです。

<uses-feature android:name="android.hardware.bluetooth_le" android:required="false"/>

アプリケーションが正常に実行できることを確認する必要があるため、

ただし、BLE をサポートしていないデバイスでアプリを利用できるようにする場合は、アプリのマニフェストにこの要素を含める必要がありますが、required="false" を設定してください。

そのコードは私のために働きます。

編集:どのデバイスがBLE機能と互換性がある かについて、あなたにとって良いことを見つけました

于 2013-10-02T10:30:31.097 に答える
3

「機能」を確認する必要があります。

PackageManager pm = ctx.getPackageManager();
boolean hasBLE = pm.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE);

ただし、メーカーがこれをどれほど真剣に受け止めているかはよくわかりません-私が自分でチェックした唯一の機能はFEATURE_TELEPHONYであり、さまざまなメーカーがさまざまな(そして不可解な)方法でそれを処理するため、マイレージは異なる場合がありますが、これはあなたがそれを意図している方法。

于 2013-09-18T16:12:09.877 に答える