web-dev-qa-db-ja.com

プリファレンスXMLファイルからロケーション設定インテントを起動する

Intentからシステムのロケーション設定を起動したい。私はプログラム的にそれがこのようになることを知っています

Intent viewIntent = new Intent(Android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(viewIntent);

しかし、私はPreferenceのXMLからそれを行う必要があります。私はこのようにしよう

<Preference
    Android:title="@string/pref_title" >
    <intent Android:action="Android.settings.ACTION_LOCATION_SOURCE_SETTINGS" />
</Preference>

しかし、それは機能しません。私は常にActivityNotFoundExceptionを取得します。 XMLインテントからそのシステムロケーション設定を起動するにはどうすればよいですか?

18
Jago

設定を表すPreferenceActivityを作成してから、次のように設定にonClickを割り当てることができます。

Preference goToLocationSettings = (Preference) findPreference("goToLocationSettings");
goToLocationSettings.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {

        public boolean onPreferenceClick(Preference preference) {
            Intent viewIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            startActivity(viewIntent);

            return true;
        }
    });

そして、xmlファイルで設定にキーを割り当てる必要があります。

<Preference
    Android:key="goToLocationSettings"
    Android:title="@string/pref_title" />
36
Emil Adz

このコードを試してください:

<PreferenceScreen
    Android:key="key_location"
    Android:summary="location settings"
    Android:title="Open location settings">

    <intent Android:action="Android.settings.ACTION_LOCATION_SOURCE_SETTINGS"/>

</PreferenceScreen>
0
user3524157