从首选项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 Intent启动系统位置设置?

Solutions Collecting From Web of "从首选项XML文件启动位置设置意图"

你可以创build一个: 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" /> 

试试这个代码:

 <PreferenceScreen android:key="key_location" android:summary="location settings" android:title="Open location settings"> <intent android:action="android.settings.ACTION_LOCATION_SOURCE_SETTINGS"/> </PreferenceScreen>