[解決済み] 設定ページに移動せずに位置情報サービスをオンにする
2022-07-01 09:29:44
質問
設定ページに移動して位置情報サービスを有効にし、再び戻ってくるようユーザーに促す従来の方法に対して、最新のアプリのいくつかで同じことを行うより簡単な方法に気づきました。
以下のスクリーンショットを参照すると、1 回クリックするだけで位置情報サービスを有効にするためのダイアログが表示され、これらのアプリで機能します。
どうすれば同じことができるのでしょうか。
どのように解決するのですか?
このダイアログは LocationSettingsRequest.Builder Google Play Servicesで利用可能です。
アプリに依存関係を追加する必要があります
build.gradle
:
compile 'com.google.android.gms:play-services-location:10.0.1'
それなら、この最小限の例を使えばいいんです。
private void displayLocationSettingsRequest(Context context) {
GoogleApiClient googleApiClient = new GoogleApiClient.Builder(context)
.addApi(LocationServices.API).build();
googleApiClient.connect();
LocationRequest locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(10000);
locationRequest.setFastestInterval(10000 / 2);
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder().addLocationRequest(locationRequest);
builder.setAlwaysShow(true);
PendingResult<LocationSettingsResult> result = LocationServices.SettingsApi.checkLocationSettings(googleApiClient, builder.build());
result.setResultCallback(new ResultCallback<LocationSettingsResult>() {
@Override
public void onResult(LocationSettingsResult result) {
final Status status = result.getStatus();
switch (status.getStatusCode()) {
case LocationSettingsStatusCodes.SUCCESS:
Log.i(TAG, "All location settings are satisfied.");
break;
case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
Log.i(TAG, "Location settings are not satisfied. Show the user a dialog to upgrade location settings ");
try {
// Show the dialog by calling startResolutionForResult(), and check the result
// in onActivityResult().
status.startResolutionForResult(MainActivity.this, REQUEST_CHECK_SETTINGS);
} catch (IntentSender.SendIntentException e) {
Log.i(TAG, "PendingIntent unable to execute request.");
}
break;
case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
Log.i(TAG, "Location settings are inadequate, and cannot be fixed here. Dialog not created.");
break;
}
}
});
}
完全なサンプルを見ることができます これ .
関連
-
[解決済み] iOS 8で位置情報サービスが利用できない
-
[解決済み】戻るボタンを2回クリックしてアクティビティを終了する方法
-
[解決済み] Googleマップのような位置情報ダイアログを表示するには?
-
[解決済み] Android - タイトルバーに戻るボタンが表示される
-
[解決済み] アンドロイドアプリのユーザーデータを消去する
-
[解決済み] 開発者コンソールでのベータ版/アルファ版テストについての説明が必要です。
-
[解決済み] カスタムレイアウトとEditTextを持つAlertDialog.Builderは、ビューにアクセスすることができません。
-
[解決済み] AndroidでNode.Jsを動作させる
-
[解決済み] Android Studioがアプリに変更をデプロイしない
-
[解決済み] Android Studio - Lollipop, ADB, & Genymotionの問題。デバイスが表示されない "adb server is out of date... 殺し合い..." 重複] [重複
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Googleマップのような位置情報ダイアログを表示するには?
-
[解決済み] SDカードからファイルを削除する方法を教えてください。
-
[解決済み] FloatingActionButtonのサンプルとサポートライブラリ
-
[解決済み] Android Studio: キーの復元ができない
-
[解決済み] カスタムレイアウトとEditTextを持つAlertDialog.Builderは、ビューにアクセスすることができません。
-
[解決済み] Androidで他のアクティビティを呼び出すときにアニメーションを表示させるには?
-
[解決済み] AndroidでNode.Jsを動作させる
-
[解決済み] android:fontFamily="sans-serif-light "と同等の機能をJavaコードで実現するには?
-
[解決済み] Android端末のシリアルナンバーを調べるには?
-
[解決済み] PreferenceFragmentCompatはpreferenceThemeが設定されている必要があります。