查看StorageSettings activity使用的xml,查找到是addPreferencesFromResource(R.xml.device_info_storage);
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
android:title="@string/storage_settings"
settings:keywords="@string/keywords_storage">
<SwitchPreference
android:key="auto_brightness"
android:title="USB开关"
settings:keywords="打开或禁用USB"
android:summary="打开或者禁用USB"
android:persistent="false" />
<PreferenceCategory
android:key="storage_internal"
android:title="@string/storage_internal_title" />
<PreferenceCategory
android:key="storage_external"
android:title="@string/storage_external_title" />
</PreferenceScreen>
在oncreate中加入菜单项:
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
final Context context = getActivity();
mStorageManager = context.getSystemService(StorageManager.class);
mStorageManager.registerListener(mStorageListener);
addPreferencesFromResource(R.xml.device_info_storage);
mInternalCategory = (PreferenceCategory) findPreference("storage_internal");
mExternalCategory = (PreferenceCategory) findPreference("storage_external");
mInternalSummary = new StorageSummaryPreference(context);
setHasOptionsMenu(true);
mAutoBrightnessPreference = (SwitchPreference) findPreference(KEY_AUTO_BRIGHTNESS);
mAutoBrightnessPreference.setOnPreferenceChangeListener(this);
boolean usb=getUsb();
mAutoBrightnessPreference.setChecked(usb);
try{
Log.d("wfy","---otg_control_config chmod 777");
Runtime.getRuntime().exec("/system/bin/lkroot chmod 777 /proc/otg_control_config");
}catch(Exception e){
Log.d("wfy","---otg_control_config 777 "+e.getMessage());
}
}
增加监听方法:
@Override
public boolean onPreferenceChange(Preference preference, Object objValue) {
final String key = preference.getKey();
if (KEY_AUTO_BRIGHTNESS.equals(key)) {
try {
boolean auto = (Boolean) objValue;
Log.e("wfy","usb " +auto);
setUsb(auto);
} catch (NumberFormatException e) {
Log.e(TAG, "could not persist screen timeout setting", e);
}
}
return true;
}