f:\linux\android\leon\workspace\qsettings\res\xml\settings_headers.xml
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <Preference android:key="profiles_settings" android:title="@string/profiles_settings_title" android:persistent="false" /> <Preference android:key="tether_settings" android:title="@string/tether_settings_title_all" android:persistent="false" /> <Preference android:key="development_settings" android:title="@string/development_settings_title" android:persistent="false" /> <Preference android:key="all_settings" android:title="@string/all_settings_title" android:persistent="false" /> </PreferenceScreen>
f:\linux\android\leon\workspace\qsettings\src\com\ango\qsettings\QSettings.java
package com.ango.qsettings; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.net.ConnectivityManager; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.os.Build; import android.preference.CheckBoxPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.ResolveInfo; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; public class QSettings extends PreferenceActivity { private static final String LOG_TAG = "QSettings"; private static final String USB_TETHER_SETTINGS = "usb_tether_settings"; private static final int INVALID = -1; private static final int WIFI_TETHERING = 0; private static final int USB_TETHERING = 1; private static final int BLUETOOTH_TETHERING = 2; public static final int TETHER_ERROR_NO_ERROR = 0; /* One of INVALID, WIFI_TETHERING, USB_TETHERING or BLUETOOTH_TETHERING */ private int mTetherChoice = INVALID; private Preference mProfiles; private Preference mUsbTether; private Preference mEnableAdb; private Preference mAllSettings; private BroadcastReceiver mTetherChangeReceiver; // private String[] mUsbRegexs; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings_headers); mProfiles = findPreference("profiles_settings"); mUsbTether = findPreference("tether_settings"); mEnableAdb = findPreference("development_settings"); mAllSettings = findPreference("all_settings"); // ConnectivityManager cm = // (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); // mUsbRegexs = cm.getTetherableUsbRegexs(); // setContentView(R.layout.activity_qsettings); // // if (savedInstanceState == null) { // getSupportFragmentManager().beginTransaction() // .add(R.id.container, new PlaceholderFragment()).commit(); // } } /** * Populate the activity with the top-level headers. */ @Override public void onBuildHeaders(List<Header> headers) { // loadHeadersFromResource(R.xml.settings_headers, headers); // updateHeaderList(headers); } @Override public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) { ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); // if (preference == mUsbTether) { // boolean newState = mUsbTether.isChecked(); // // if (newState) { // mTetherChoice = USB_TETHERING; // try { // startTethering(); // } catch (IllegalArgumentException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } catch (NoSuchMethodException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } catch (IllegalAccessException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } catch (InvocationTargetException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } else { // try { // setUsbTethering(newState); // } catch (IllegalArgumentException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } catch (NoSuchMethodException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } catch (IllegalAccessException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } catch (InvocationTargetException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } // } if (preference == mUsbTether) { // Intent intent = Intent.makeRestartActivityTask( // new ComponentName("com.android.settings", // "com.android.settings.SubSettings")); // intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT, "com.android.settings.deviceinfo.Memory"); // intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT_TITLE, "tether_settings"); // intent.putExtra(PreferenceActivity.EXTRA_NO_HEADERS, true); // //startActivity(intent); // startActivityForResult( intent , 0); Intent intent=new Intent("/"); ComponentName cn=new ComponentName("com.android.settings", "com.android.settings.TetherSettings"); intent.setComponent(cn); startActivityForResult(intent, 1); } else if (preference == mEnableAdb) { Intent intent=new Intent("/"); ComponentName cn=new ComponentName("com.android.settings", "com.android.settings.DevelopmentSettings"); intent.setComponent(cn); startActivityForResult(intent, 1); } else if (preference == mAllSettings) { Intent intent=new Intent("/"); ComponentName cn=new ComponentName("com.android.settings", "com.android.settings.Settings"); intent.setComponent(cn); startActivityForResult(intent, 1); } else if (preference == mProfiles) { Intent intent=new Intent("/"); ComponentName cn=new ComponentName("com.android.settings", "com.android.settings.profile.ProfileSettings"); // ComponentName cn=new ComponentName("com.android.settings", ".profile.ProfileSettings"); intent.setComponent(cn); startActivityForResult(intent, 1); //intent.setClassName("com.android.settings", "com.android.settings.profile.ProfileSettings"); //mContext.startActivity(intent); } return super.onPreferenceTreeClick(screen, preference); } private void startTethering() throws IllegalArgumentException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { switch (mTetherChoice) { case USB_TETHERING: setUsbTethering(true); break; default: //should not happen break; } } private void setUsbTethering(boolean enabled) throws NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); Class<?> cmClass = cm.getClass(); Method method = cmClass.getMethod("setUsbTethering", boolean.class); method.invoke(cm, enabled); //mUsbTether.setChecked(false); // if (cm.setUsbTethering(enabled) != TETHER_ERROR_NO_ERROR) { // mUsbTether.setSummary(R.string.usb_tethering_errored_subtext); // return; // } // mUsbTether.setSummary(""); } }
qsettings
时间: 2024-10-30 13:36:50