私はBLE Bluetoothスキャンに取り組んでいますが、Android 10を除くすべてのデバイスで動作しています。Android 10は動作していません。BLE Bluetoothスキャンのバージョン10の問題について誰か答えてください。
ベストアンサー1
Android 10をターゲットとするAndroidアプリでBLEスキャンを機能させるには、ユーザーに
アクセス背景場所
ACCESS_FINE_LOCATION と一緒に、マニフェストに権限を追加することも忘れないでください。
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
理由は次のとおりです:
Android 10(API レベル 29)では、ユーザーのプライバシーをより適切に保護するための機能と動作の変更が数多く導入されています。これらの変更により、ユーザーが自分のデータやアプリに付与する機能に対する透明性と制御が強化されます。
簡単に言えばあなたの問題は次のとおりです:
バックグラウンドでデバイスの位置情報にアクセスするには許可が必要です
ユーザーがアプリの位置情報へのアクセスをさらに制御できるようにするため、Android 10では、アクセス背景場所許可。
とは異なり、アクセス_ファイン_ロケーションそしてアクセス大まかな場所権限とは異なり、ACCESS_BACKGROUND_LOCATION 権限は、アプリがバックグラウンドで実行されているときにのみ、アプリの位置情報へのアクセスに影響します。次のいずれかの条件が満たされない限り、アプリはバックグラウンドで位置情報にアクセスしていると見なされます。
アプリに属するアクティビティが表示されます。アプリは、フォアグラウンド サービス タイプの場所を宣言したフォアグラウンド サービスを実行しています。
アプリ内のサービスのフォアグラウンド サービス タイプを宣言するには、アプリの targetSdkVersion または compileSdkVersion を 29 以上に設定します。フォアグラウンド サービスが、位置情報へのアクセスを必要とするユーザー開始アクションを続行する方法について詳しくは、こちらをご覧ください。
これで問題が解決することを願っています :)