Android 如何收听活动并更改设置
我想编写一个简单的android应用程序,它监听一个命令,比如长按菜单按钮或按home按钮3次,然后将/sys/class/mdnie/mdnie/negative中的值更改为1或0。我不知道从哪里开始,我知道修改这个值需要根访问权限,我可以通过echo>1/sys/class/mdnie/mdnie/negative成功地做到这一点Android 如何收听活动并更改设置,android,colors,screen,toggle,Android,Colors,Screen,Toggle,我想编写一个简单的android应用程序,它监听一个命令,比如长按菜单按钮或按home按钮3次,然后将/sys/class/mdnie/mdnie/negative中的值更改为1或0。我不知道从哪里开始,我知道修改这个值需要根访问权限,我可以通过echo>1/sys/class/mdnie/mdnie/negative成功地做到这一点 任何指导都是感激的,我需要这个给一个视障朋友。此应用程序将在一些三星设备上为他切换负色,他想按home键3次,从设备上的任何位置打开和关闭负色。这应该不难。这将是
任何指导都是感激的,我需要这个给一个视障朋友。此应用程序将在一些三星设备上为他切换负色,他想按home键3次,从设备上的任何位置打开和关闭负色。这应该不难。这将是一个没有关联显示的活动,用于切换值并在之后立即完成。代码如下所示(不是未经测试的代码-如果您面临问题,请将其作为与此不同的新StackOverflow问题发布):
可能重复感谢您的参考,我们使用的rom允许通过硬键启动应用程序,所以除了硬键功能之外,我如何编写一个简单的应用程序,查看/sys/class/mdnie/mdnie/negative的值,并根据其已有值将其更改为1或0。此应用程序不需要用户界面。
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();
}
}