qsettings

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

qsettings的相关文章

QSettings 用法总结(很好用)

原文  http://hi.baidu.com/fightiger/blog/item/ba69a434f36e18add1a2d350.html 用户对应用程序经常有这样的要求:要求它能记住它的settings,比如窗口大小,位置,一些别的设置,还有一个经常用的,就是recent files,等等这些都可以通过Qsettings来实现. 我们知道,这些settings一般都是存在系统里的,比如windows一般都写在系统注册表或者写INI文件,mac系统一般都在XML文件里,那么按照一般的标准

QSettings保存程序设置

今天看了一些QSettings的简单用法,可以用来保存程序的设置,使得程序每次启动都可以显示上次关闭时的状态.我这里实现了一个简单的文本编辑窗口,可以设置文本的字体,字体的颜色和背景色.每次关闭程序都保存程序的几何大小,位置和文本以及文本所设置的格式,方便启动程序后继续编辑. 文本编辑窗口 TextEditor继承了QTextEdit,主要实现文本编辑和文本格式设置.保存文本信息时直接用的html字符串形式保存,可以同时保存文本的格式. [cpp] view plain copy class T

Qt配置信息设置(QSettings在不同平台下的使用路径)

在Windows操作系统中,大多把配置文件信息写在注册表当中,或写在*.ini文件中,对于这两种操作都有相应的Windows API函数,在以前的文章中都提及过,这里就不多说了~ 在Qt中,提供了一个相应的配置文件的类QSetting,使用QSetting类,可以将用户设置以及应用程序的设置轻松存储在磁盘中. QSettings::Format(配置存储格式)分为NativeFormat.IniFormat.InvalidFormat.这里主要讲的是NativeFormat和IniFormat.

保存应用程序设置(QSettings)

保存应用程序设置(QSettings) 1.   QSettings 类 QSettings 提供保存应用程序当前设置的接口,可以方便地保存程序的状态,例如窗口大小和位置,选项的选中状态等等. 在 Windows 系统中,程序程序的状态信息记录在注册表中:在 Mac OS X 系统上,这些信息记录在 XML 配置文件中:在 Unix 系统中,则使用 INI text 文件记录.QSettings 则是对这些技术的一个抽象,使得保存和取得应用程序的设置状态的只得独立于操作系统. QSettings

【Qt 】QSettings写ini配置文件

QSettings写ini配置文件(Qt版本5.2): #include "inidemo.h" #include <QSettings> #include <QTextCodec> IniDemo::IniDemo(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); QSettings settings("setting.ini",QSettings::IniFormat);

QSettings使用方法

一 .QSettings介绍: 用户通常希望应用程序记住其设置.在windows中,这些设置保存在注册表中,ios在属性文件列表中,而unix,在缺乏标准的情况下,其存储在ini文本中.QSettings有两种存储格式:QSettings::NativeFormat(在windows平台可读写注册表).QSettings::IniFormat(读写ini文件).QSettings::InvalidFormat QSettings使用户可以保存应用程序设置,并且支持用户自定义存储格式.QSetin

qsettings 保存自定义结构体(QVariant与自定义结构体相互转化)

参考博文:QVariant与自定义数据类型转换的方法. 这里摘取其关键内容: 1.将自定义数据类型使用Q_DECLARE_METATYPE宏进行声明,便于编译器识别. 2.在插入对象的时候,声明QVariant对象,使用其setValue方法添加自定义对象. 3.在读取的时候,采用QVariant对象的value方法返回自定义对象. 写入: //类型转换 QVariant v; v.setValue(MyStruct);  读取: //转换为自定义的结构体实例 MyStruct s = v.va

QSettings 类

一 .QSettings介绍: 用户通常希望应用程序记住其设置.在windows中,这些设置保存在注册表中,ios在属性文件列表中,而unix,在缺乏标准的情况下,其存储在ini文本中.QSettings有两种存储格式:QSettings::NativeFormat(在windows平台可读写注册表).QSettings::IniFormat(读写ini文件).QSettings::InvalidFormat QSettings使用户可以保存应用程序设置,并且支持用户自定义存储格式.QSetin

QSettings的使用

QSettings类是Qt中跨平台的配置信息类,在Application关闭时可以保存必要的数据信息:在程序启动时读取数据,恢复用户设置.在此,做一个小例子来测试其基本使用. QSettingsDialog即录入用户数据,并且处理数据. ui文件: <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0">  <class>QSettingsDialog&