アプリの /system/build.prop に何かを追加しようとしていますが、ListPreference で変更する方法がわかりません。
これは私のコードがどのように見えるかです:
public static class NotificationPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_monitor);
bindPreferenceSummaryToValue(findPreference("monitor"));
そして私のXMLは次のように述べています:
<ListPreference
android:key="monitor"
android:id="@+id/monitor"
android:title="Select monitor"
android:defaultValue="1"
android:entries="@array/monitor_titles"
android:entryValues="@array/monitor_values"
android:negativeButtonText="@null"
android:positiveButtonText="@null" />
そして配列は次のとおりです。
<string-array name="monitor_titles">
<item>320</item>
<item>280</item>
<item>260</item>
<item>240</item>
<item>200</item>
<item>180</item>
</string-array>
<string-array name="monitor_values">
<item>320</item>
<item>280</item>
<item>260</item>
<item>240</item>
<item>200</item>
<item>180</item>
</string-array>
ボタンを使用して問題なくこれを行うことができます。たとえば、次のように追加します。
try{
Runtime.getRuntime().exec( new String[] { "su", "-c", "mount -o remount,rw /system" });
Runtime.getRuntime().exec( new String[] { "su", "-c", "sed -i '/ro.sf.lcd_density=*/d' /system/build.prop"});
Runtime.getRuntime().exec( new String[] { "su", "-c", "echo ro.sf.lcd_density=320 >> /system/build.prop"});
Runtime.getRuntime().exec( new String[] { "su", "-c", "sed -i '/ro.sf.lcd_density==320/d' /system/build.prop"});
Runtime.getRuntime().exec( new String[] { "su", "-c", "mount -o remount,ro /system" });
Runtime.getRuntime().exec( new String[] { "su", "-c", "killall zygote"});
} catch (IOException e) {
e.printStackTrace();
}
しかし、これを ListPreference に追加するにはどうすればよいでしょうか? 助けていただければ幸いです。