是的,如果你有root權限,你可以這樣做。它是一個漫長的過程,但你可以這樣做:
步驟:1 創建xml文件,名爲com.android.inputmethod.latin_preferences.xml
並保存在資產中。使用asset manager
的,你需要
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
此功能將文件拷貝這個文件複製到你的應用程序文件夾(任何地方,您可以訪問):
com.android.inputmethod.latin_preferences.xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="popup_on" value="false" />
<string name="auto_correction_threshold">1</string>
<boolean name="pref_enable_metrics_logging" value="true" />
<boolean name="pref_voice_input_key" value="true" />
<boolean name="pref_key_use_personalized_dicts" value="true" />
<boolean name="pref_key_block_potentially_offensive" value="true" />
<int name="last_shown_emoji_category_id" value="1" />
<boolean name="sound_on" value="false" />
<string name="emoji_recent_keys">[{"Integer":128533}]</string>
<boolean name="auto_cap" value="true" />
<boolean name="show_suggestions" value="true" />
<boolean name="pref_key_use_contacts_dict" value="true" />
<boolean name="next_word_prediction" value="true" />
<boolean name="pref_key_use_double_space_period" value="true" />
<int name="emoji_category_last_typed_id1" value="0" />
<boolean name="vibrate_on" value="false" />
</map>
第2步資產
public static void copyAssets(Context context, String assetPath, String outFilename) {
AssetManager assetManager = context.getAssets();
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open(assetPath);
File outFile = new File(context.getExternalFilesDir(null), outFilename);
out = new FileOutputStream(outFile);
copyFile(in, out);
} catch (IOException e) {
Log.e(TAG, "Failed to copy asset: " + outFilename, e);
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
}
}
}
}
public static void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1) {
out.write(buffer, 0, read);
}
}
步驟3:覆蓋系統偏好文件系統路徑(destPath)是/data/data/com.android.inputmethod.latin/shared_prefs
public static void copyToSystem(final String sourceFilePath, final String destPath) {
Thread background = new Thread(new Runnable() {
@Override
public void run() {
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
//
os.writeBytes("cp -f " + sourceFilePath + " " + destPath + "\n");
os.flush();
os.writeBytes("exit\n");
os.flush();
process.waitFor();
process.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
Log.e(TAG, e.toString());
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, e.toString());
}
}
});
background.start();
}
步驟4:重啓設備
這一切完成。這些步驟將關閉按鍵聲音和按鍵振動
任何想法?????! – Houcine 2013-05-08 10:59:04
我想這實際上取決於鍵盤的實現。可能有鍵盤在那裏每次點擊一個鍵時播放電影。我不認爲你能做到這一點。無論如何,好運。 – 2013-05-08 12:34:45
感謝@SherifelKhatib的回覆,但是在設置中我們可以啓用/禁用按鍵敲擊聲音和按鍵敲擊振動器,我的問題是:是否有一種方法可以通過編程方式執行此操作,就像我們可以通過「Wifi」 'WifiManager'和'亮度',音量通過'AudioManager'..等等 – Houcine 2013-05-08 13:32:30