使此处的震动默认开启,关于在情景模式下的设置在AudioProfileSoundSettings中
可以找到相关的preference mVibrate
private CheckBoxPreference mVibrate;
addPreferencesFromResource(R.xml.audio_profile_sound_settings);
private static final String KEY_VIBRATE = "vibrate";
mVibrate = (CheckBoxPreference) findPreference(KEY_VIBRATE);
if (mAudioProfile.mIsVibrate == AudioProfile.IS_VIBRATE) {
mVibrate.setChecked(true);
} else {
mVibrate.setChecked(false)
}
查看xml文件中
<com.sprd.audioprofile.AudioProfileCheckBoxPrefrence
android:key="vibrate"
android:title="@string/vibrate_title"
android:summary="@string/vibrate_summary"
android:persistent="false" />
在此处设置defaultValue可以选择checkbox是否被选中
但是if (mAudioProfile.mIsVibrate == AudioProfile.IS_VIBRATE)这条判断语句中会对vibrate的状态进行是否选中的判断
mAudioProfile = AudioProfile.restoreProfileWithId(this, mEditId);
查看AudioProfile文件
public static final int IS_VIBRATE = 1;
查看AudioProfile.restoreProfileWithId方法
利用cursor获取contentresolver后,在restore()方法中进行查询改变值
p.mIsVibrate = cursor.getInt(cursor.getColumnIndex(AudioProfileColumns.IS_VIBRATE));
public static final String PROFILE_TABLE = "profiles";
public static final String AUTHORITY = "com.sprd.audioprofile.provider";
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/" + PROFILE_TABLE);
查询的contentprovider的uri
在AduioProfileProvider中,createProfileTable中
进行默认属性的写入
AudioProfileColumns.IS_VIBRATE + " INTEGER DEFAULT " + AudioProfile.NOT_VIBRATE + ", "
将其修改
AudioProfileColumns.IS_VIBRATE + " INTEGER DEFAULT " + AudioProfile.IS_VIBRATE + ", "
失败了
在frameworks/base/packages/settingsprovider/src/com/android/providers/setting下
DatabaseHelper.java
将vibrateWhenRinging 的值改为1.
编译SettingsProvider 和Settings 才可以成功