4

私が取り組んでいるアプリケーションは、場所と BLE の両方を使用しており、場所または Bluetooth が無効になっている場合は、ユーザーにそれらを有効にするように依頼する必要があります。

最新の Google Play Services では、LocationSettingsRequest要件を確認し、設定の変更が必要な場合は標準のポップアップを表示する標準的な方法が提供されています。場所だけでもチャームのように機能しますが、追加SetNeedBle (true)するLocationSettingsRequestとステータスが得られますSETTINGS_CHANGE_UNAVAILABLE

私の唯一の推測では、BLE 機能に不可欠である可能性があるAddApi (FitnessClass.BLE_API)ため、a への呼び出しを追加する必要があるということでしたが、フィットネス サービスの BLE 部分が必要なだけなのでGoogleApiClientBuilder、Google Play Services への接続に失敗したというステータスが表示されて混乱しました。SIGN_IN_REQUIRED

LocationSettingsRequestユーザーに位置情報と Bluetooth の両方を求める良い例を知っている人はいますか?

ロケーションポップアップ

4

2 に答える 2

1

あなたはとても近くにいます。LocationSettingsRequest.Builderそこには、setNeedBle(boolean needBle)BLE を要求するダイアログ ボックスがポップアップ表示されます。BLE 位置情報に Fitness API を使用しないでください。

また、マニフェストに次を追加して、電話機が BLE 対応であることを確認します。

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

次に、コードで:

if(context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
    //has BLE
}

また、Google Play Service から、使用可能な機能についてシステムに問い合わせるSettingApiを使用できます。ガイドには、使用方法の完全な例が含まれています。

https://developers.google.com/android/reference/com/google/android/gms/location/LocationSettingsRequest.Builder.html#setNeedBle(ブール値)

于 2015-09-10T01:37:26.353 に答える