【问题标题】:How to listen for an activity and change a setting如何收听活动并更改设置
【发布时间】:2013-10-28 17:45:32
【问题描述】:

我想编写一个简单的 android 应用程序,它侦听诸如长按菜单按钮或按主页按钮 3 次之类的命令,然后将 /sys/class/mdnie/mdnie/negative 中的值更改为 1 或 0。我有不知道从哪里开始,我知道修改这个值需要 root 访问权限,我可以通过 echo > 1 /sys/class/mdnie/mdnie/negative 成功做到这一点

感谢任何指导,我需要这个给有视力障碍的朋友。此应用程序将为他在某些三星设备上切换负色,他想在设备上的任何位置按 Home 键 3 次以打开和关闭负色。

【问题讨论】:

  • 感谢您的参考,我们使用的 rom 允许通过硬键启动应用程序,因此除了硬键功能之外,我将如何编写一个简单的应用程序,其价值位于 /sys/class/mdnie/mdnie /negative 并根据已有的内容将其更改为 1 或 0。此应用不需要用户界面。

标签: android colors screen toggle


【解决方案1】:

应该不难。这将是一个没有关联显示的活动,它会切换值并在之后立即完成。代码看起来像这样(不是未经测试的代码 - 如果您遇到问题,请将它们作为与此不同的新 StackOverflow 问题发布):

public class ToggleNegativeColorsActivity extends Activity {

    private static final String FILEPATH = "/sys/class/mdnie/mdnie/negative";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super(savedInstanceState);

        try {
            String value = readFileAsString(FILEPATH);
            if ("1".equals(value.trim())) {
                writeStringToFile(FILEPATH, "0");
            } else {
                writeStringToFile(FILEPATH, "1");
            }
        catch (IOException e) {
            e.printStackTrace();
        }

        finish();
    }

    // Grabbed from http://stackoverflow.com/questions/1656797/how-to-read-a-file-into-string-in-java
    private String readFileAsString(String filePath) throws IOException {
        StringBuffer fileData = new StringBuffer();
        BufferedReader reader = new BufferedReader(
            new FileReader(filePath));
        char[] buf = new char[1024];
        int numRead;
        while((numRead=reader.read(buf)) != -1){
            String readData = String.valueOf(buf, 0, numRead);
            fileData.append(readData);
        }
        reader.close();
        return fileData.toString();
    }

    // Grabbed from http://stackoverflow.com/questions/1053467/how-do-i-save-a-string-to-a-text-file-using-java
    private void writeStringToFile(String filePath, String value) throws IOException {
        PrintWriter out = new PrintWriter(filePath);
        out.print(value);
        out.close();
    }
}

【讨论】:

    猜你喜欢
    • 2013-12-15
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    相关资源
    最近更新 更多