應該不難。這將是一個沒有關聯顯示的活動,可以切換值並在之後立即結束。該代碼是這樣的(它是不是未經測試的代碼 - 如果你面對的問題,他們發佈從這個不同的新的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();
}
}
http://stackoverflow.com/questions/18086097的可能的複製/ where-to-put-code-for-a-global-hardware-key-listener – Piovezan
感謝您的參考,我們使用的ROM允許通過硬鍵啓動應用程序,所以除了硬鍵功能,我怎麼會寫一個簡單的應用程序查看/ sys/class/mdnie/mdnie/negative中的值,並根據其已有值將其更改爲1或0。這個應用程序不需要用戶界面。 – user2929128