あなたのケースでは簡単にstartActivityForResult
を使用できます。
ロケーションを有効にする設定を開始するときに、このような意図を開始することができます。
// Declare a global variable first
private final int ACTION_LOCATION_SETTING = 100;
// Now change the onClickListener like this
dialog.setPositiveButton("Take me to location services", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface paramDialogInterface, int paramInt) {
Intent locationSettingIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(locationSettingIntent, ACTION_LOCATION_SETTING);
}
});
ここでロケーション設定から戻ると、ここにコールバックがあります。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case ACTION_LOCATION_SETTING:
if (resultCode == Activity.RESULT_OK) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
//DO FANCY STUFF WITH LOCATION
}
}
break;
default:
super.onActivityResult(requestCode, resultCode, data);
}
}
シンプル!
ブリリアント。 「imageChooserIntent」の値が何を参照しているか教えていただけますか? – Chris
申し訳ありません、答えを編集しました。それは 'locationSettingIntent'でなければなりません。 –