片段中的Android ListPreference,如何使用户选择的选项作为shell命令运行?

时间:2013-05-29 06:20:17

标签: android runtime root listpreference

我正在尝试在我的应用程序中添加/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?非常感谢帮助!

0 个答案:

没有答案