7

私のアプリケーションでは、ユーザーのデバイスで GPS が有効になっているかどうかを確認しています。そうでない場合は、ユーザーを [設定] に送信してオンにできるようにしたいと考えています。

Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, LocationHelper.LOCATION_SETTINGS_REQUEST_CODE);

ユーザーが設定画面を閉じた後、onActivityResult().

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == LocationHelper.LOCATION_SETTINGS_REQUEST_CODE) {
        LogUtils.d("onActivityResult from settings");
        fetchCurrentLocation();
    }
}

ただし、 はonActivityResult()呼び出されません。私は何か間違ったことをしていますか、それともこのアプローチは一般的に機能しませんか? 前もって感謝します。

4

2 に答える 2

6

設定インテントを起動します:

Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);

onResume メソッドで現在の場所を取得します。

public void onResume(){
    super.onResume();
    if(isGPSEnabled){
         fetchCurrentLocation();
}
}

設定画面から戻った後、 onResume メソッドが呼び出され、ここで場所を取得できます。

于 2013-03-04T13:57:55.967 に答える
-2

マニフェストで ACCESS_FINE_LOCATION パーミッションを定義しましたか?

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
于 2013-03-04T11:07:03.267 に答える