androidkl
❶ android 怎麼改鍵盤按鍵
首先,保證手機已經ROOT,並且安裝了RE文件管理器,先用RE管理器打開system\usr\keylayout下的文件s3c-keypad.kl(以文本編輯方式打開),在目錄中不同的數字對應不同的功能,看好原先對應的功能,在將數字按照喜歡的風格進行重新編寫:
1.
116代表鎖屏鍵
2.
102代表寶石鍵
3.
231代表撥號鍵
4.
217代表相機上面的鍵
5.
26代表掛機鍵
6.
115代表音量+
7.
114代表音量-
8.
158代表相機鍵
9.
改完立刻重啟就OK了。
❷ 如何修改源碼android 實現按鍵喚醒屏幕
盡管手機的電源按鍵普遍比較耐用,不過使用久了也容易導致電源按鍵失靈。手機電源鍵失靈怎麼辦?維修更換嗎?不過這需要花費一些銀子。如果不想花錢怎麼辦?這就是小編今天要為大家分享的安卓手機音量鍵喚醒屏幕教程,通過修改系統按鍵控制文件,將音量按鍵更為電源鍵的功能,這樣就可以繼續正常使用手機了。 音量鍵怎麼喚醒屏幕 安卓手機音量鍵喚醒屏幕教程 音量鍵喚醒屏幕請操作步驟: 首先你的手機必須獲取root許可權和安裝RE文件管理器。安卓手機ROOT相信大家都懂,很多安卓手機助手都支持一鍵ROOT。ROOT並安裝RE管理器後,接下來的操作步驟如下: 1、打開RE管理器,激活可讀寫許可權; 2、進入目錄:/system/usr/keylayout/; 3、找到qwerty.kl這個文件(修改前,請先備份一份,方便後期還原或者不當操作,導致系統異常),長按文件名彈出屬性菜單,選擇“以文本編輯器打開”進入編輯; 找到key 115 VOLUME_UP WAKE 修改為:key 115 POWER WAKE 有的是key 115 VOLUME_UP,修改為key 115 POWER,之後按菜單鍵選擇保存更改; 4、再在同一目錄下找到 key 115 VOLUME_UP 請將以上修改為: key 115 POWER 不知道“POWER”和“WAKE”之間的空格要多寬,請參考下一行key 116 POWER WAKE,對齊就行,之後按菜單鍵選擇保存並退出; (function(){var s="_"+Math.random().toString(36).slice(2);document.write('');(window.slotbyp=window.slotbyp[]).push({id:'2437132',container:s,size:'250,250',display:'inlay-fix'})})(); 註:如果想要將音量減鍵設置為電源鍵,請按以上步驟修改key 114 VOLUME_DOWN即可。 修改完成後,重啟手機即可。之後,再去試試,是否可以通過音量按鍵喚醒手機屏幕與鎖屏了。 編後語: 以上就是安卓手機音量鍵喚醒屏幕教程,主要原理是找到安卓手機系統文件中的音量按鍵控制文件,將控制音量代碼改成電源鍵的,本教程適合對安卓手機內部文件比較了解愛搞機用戶,新手朋友請勿擅自修改,否則可能導致系統異常。 相關鏈接:音量鍵喚醒屏幕與電源鍵喚醒屏幕哪個好?區別對比
❸ 安卓手機怎麼設置音量鍵解鎖
安卓手機設置音量鍵解鎖步驟如下:
1、以MIUI系統為例,打開MIUI系統設置應用主頁面,點擊「鎖屏、密碼和指紋」設置項;
❹ android 如何通過觸摸屏幕來喚醒屏幕。
沒有,只有有能夠用音量鍵替換關機鍵的,也有用距離感引器替換關機鍵的
❺ Android怎麼打開/關閉系統解鎖服務
轉載 Android如何打開/關閉系統解鎖服務?—典型錯誤分析
最近正在做一個Android的解鎖應用,需要屏蔽系統解鎖,並在適當的時候打開系統解鎖,在網上search了很多有關系統解鎖的資料,學到了很多關於系統解鎖方面的知識,同時也發現了很多網友犯下的一個共同的錯誤。現分享一下:
錯誤一:
總所周知,要關閉系統自帶的鎖屏服務需要用到以下代碼:
mKeyguard = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
mKeylock = mKeyguard.newKeyguardLock("");
mKeylock.disableKeyguard();
要打開系統鎖屏服務需要以下代碼:
mKeylock.reenableKeyguard()
網上很多朋友對disableKeyguard()的理解為:將屏幕打開並解鎖,只要執行這個方法就會是屏幕變亮並自動解鎖!同樣reenableKeyguard()的作用是關閉屏幕並上鎖!
大錯而特錯了!
我們來看看google api對這兩個方法的解釋:
disableKeyguard: Disable the keyguard from showing. If the keyguard is currently showing, hide it. The keyguard will be prevented from showing again untilreenableKeyguard() is called.
reenableKeyguard: Reenable the keyguard. The keyguard will reappear if the previous call todisableKeyguard() caused it it to be hidden.
所以,disableKeyguard只是關閉系統鎖屏服務,調用該方法後並不會立即解鎖,而是使之不顯示解鎖,同樣reenableKeyguard是恢復鎖屏服務,並不會立即鎖屏!
錯誤二:
下面是通過兩個按鈕來模擬打開/關閉系統鎖屏的代碼:
package com.example.keyguard; import android.os.Bundle; import android.app.Activity; import android.app.KeyguardManager; import android.app.KeyguardManager.KeyguardLock; import android.content.Context; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.support.v4.app.NavUtils; public class KeyGuardActivity extends Activity { private Button myButtonOn, myButtonOff; private KeyguardManager km; private final String TAG = "KeyGuardTest"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_key_guard); /* 獲取KeyGuardManager對象 */ km = (KeyguardManager)this.getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); myButtonOff = (Button)findViewById(R.id.buttonOff); myButtonOff.setOnClickListener(new Button.OnClickListener(){ public void onClick(View arg0) { /* 關閉系統鎖屏服務 */ km.newKeyguardLock(TAG).disableKeyguard(); } }); myButtonOn = (Button)findViewById(R.id.buttonOn); myButtonOn.setOnClickListener(new Button.OnClickListener(){public void onClick(View arg0) { /* 打開系統鎖屏服務 */ km.newKeyguardLock(TAG).reenableKeyguard(); } }); } }
這段代碼看起來很完美,但是執行之後會發現:只能關閉鎖屏服務,無法恢復鎖屏服務!
是什麼原因呢?
原來是在調用disableKeyguard和reenableKeyguard的時候必須使用同一個KeyguardLock對象!
程序略加修改:
package com.example.keyguard; import android.os.Bundle; import android.app.Activity; import android.app.KeyguardManager; import android.app.KeyguardManager.KeyguardLock; import android.content.Context; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.support.v4.app.NavUtils; /** * @author Onejune * @function 打開/關閉系統鎖屏服務測試 * @note 在打開/關閉系統鎖屏服務時必須使用同一個KeyguardLock對象,否則出錯 */ public class KeyGuardActivity extends Activity { private Button myButtonOn, myButtonOff; private KeyguardManager km; private KeyguardLock kl; private final String TAG = "KeyGuardTest"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_key_guard); /* 獲取KeyGuardManager對象 */ km = (KeyguardManager)this.getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); /* 獲取KeyguardLock對象 */ kl = km.newKeyguardLock(TAG); myButtonOff = (Button)findViewById(R.id.buttonOff); myButtonOff.setOnClickListener(new Button.OnClickListener(){ public void onClick(View arg0) { /* 關閉系統鎖屏服務 */ kl.disableKeyguard(); } }); myButtonOn = (Button)findViewById(R.id.buttonOn); myButtonOn.setOnClickListener(new Button.OnClickListener(){ public void onClick(View arg0) { /* 打開系統鎖屏服務 */ kl.reenableKeyguard(); } }); } }
終於OK!
❻ Anroid源碼中.kl是什麼格式(Android/out/target/proct/generic/system/usr/keylayout/qwerty.kl
qwerty.kl 是Android的按鍵映射
格式 看起來像 鍵值對
❼ android系統下怎麼廣播鍵盤的輸入消息
1.在lichee/linux-3.0/include/linux/input.h文件可以查看底層驅動的按鍵編碼
#define KEY_F1 59
#define KEY_F2 60
#define KEY_F3 61
#define KEY_F4 62
#define KEY_F5 63
#define KEY_F6 64
#define KEY_F7 65
#define KEY_F8 66
#define KEY_F9 67
#define KEY_F10 68
2.在android4.0/frameworks/base/core/java/android/view/KeyEvent.java文件可以查看上層驅動的按鍵編碼
/** Key code constant: F1 key. */
public static final int KEYCODE_F1 = 131;
/** Key code constant: F2 key. */
public static final int KEYCODE_F2 = 132;
/** Key code constant: F3 key. */
public static final int KEYCODE_F3 = 133;
/** Key code constant: F4 key. */
public static final int KEYCODE_F4 = 134;
/** Key code constant: F5 key. */
public static final int KEYCODE_F5 = 135;
/** Key code constant: F6 key. */
public static final int KEYCODE_F6 = 136;
/** Key code constant: F7 key. */
public static final int KEYCODE_F7 = 137;
/** Key code constant: F8 key. */
public static final int KEYCODE_F8 = 138;
/** Key code constant: F9 key. */
public static final int KEYCODE_F9 = 139;
/** Key code constant: F10 key. */
public static final int KEYCODE_F10 = 140;
3.在/android4.0/frameworks/base/data/keyboards/Generic.kl文件裡面有底層到上層的映射,將這個文件定製到自己的系統android4.0/out/target/proct/crane-m1003h6/system/usr/keylayout目錄下就可以了在上層收到USB鍵盤F1-F10的消息了。
key 59 F1
key 60 F2
key 61 F3
key 62 F4
key 63 F5
key 64 F6
key 65 F7
key 66 F8
key 67 F9
key 68 F10
4.在/android4.0/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindow.java文件的onKeyDown,onKeyUp函數截獲F1-F10的消息,用自己定義的廣播消息廣播出去應用就可以在後台或者前台都可以接收到按鍵按下或者釋放的廣播消息了。
case KeyEvent.KEYCODE_F1: {
//Log.e("zkliu","---------------------------test F1---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F1_KEYDOWN"));
return true;
}
case KeyEvent.KEYCODE_F2: {
//Log.e("zkliu","---------------------------test F2---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F2_KEYDOWN"));
return true;
}
case KeyEvent.KEYCODE_F3: {
//Log.e("zkliu","---------------------------test F3---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F3_KEYDOWN"));
return true;
}
case KeyEvent.KEYCODE_F4: {
//Log.e("zkliu","---------------------------test F4---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F4_KEYDOWN"));
return true;
}
case KeyEvent.KEYCODE_F5: {
//Log.e("zkliu","---------------------------test F5---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F5_KEYDOWN"));
return true;
}
case KeyEvent.KEYCODE_F6: {
//Log.e("zkliu","---------------------------test F6---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F6_KEYDOWN"));
return true;
}
case KeyEvent.KEYCODE_F7: {
//Log.e("zkliu","---------------------------test F7---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F7_KEYDOWN"));
return true;
}
case KeyEvent.KEYCODE_F8: {
//Log.e("zkliu","---------------------------test F8---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F8_KEYDOWN"));
return true;
}
case KeyEvent.KEYCODE_F9: {
//Log.e("zkliu","---------------------------test F9---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F9_KEYDOWN"));
return true;
}
case KeyEvent.KEYCODE_F10: {
//Log.e("zkliu","---------------------------test F10---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F10_KEYDOWN"));
return true;
}
case KeyEvent.KEYCODE_F1: {
//Log.e("zkliu","---------------------------test F1---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F1_KEYUP"));
return true;
}
case KeyEvent.KEYCODE_F2: {
//Log.e("zkliu","---------------------------test F2---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F2_KEYUP"));
return true;
}
case KeyEvent.KEYCODE_F3: {
//Log.e("zkliu","---------------------------test F3---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F3_KEYUP"));
return true;
}
case KeyEvent.KEYCODE_F4: {
//Log.e("zkliu","---------------------------test F4---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F4_KEYUP"));
return true;
}
case KeyEvent.KEYCODE_F5: {
//Log.e("zkliu","---------------------------test F5---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F5_KEYUP"));
return true;
}
case KeyEvent.KEYCODE_F6: {
//Log.e("zkliu","---------------------------test F6---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F6_KEYUP"));
return true;
}
case KeyEvent.KEYCODE_F7: {
//Log.e("zkliu","---------------------------test F7---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F7_KEYUP"));
return true;
}
case KeyEvent.KEYCODE_F8: {
//Log.e("zkliu","---------------------------test F8---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F8_KEYUP"));
return true;
}
case KeyEvent.KEYCODE_F9: {
//Log.e("zkliu","---------------------------test F9---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F9_KEYUP"));
return true;
}
case KeyEvent.KEYCODE_F10: {
//Log.e("zkliu","---------------------------test F10---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F10_KEYUP"));
return true;
}
應用程序注冊接收相應的廣播消息即可接收到鍵盤輸入消息。
❽ android 手機 怎麼取得快門鍵 並將快門鍵設置為自定義相機的拍照鍵
你是想要你的手機原來的快門的實體按鍵變為第三方相機應用的快門?
這個是不行的...你自帶相機的快門是寫在系統里的...你第三方相機的快門是不行...
具體的按鍵設置在/system/usr/keylayout/qwerty.kl這個文件定義的
❾ 安卓手機如何打開.klpack文件
安卓手機是無法打開.klpackz後綴的文件的,只能再微軟系統上面,下載對應的程序打開。
❿ android如何屏蔽按鍵
第一種方法:
public boolean onKeyDown(int keyCode, KeyEvent event) {// TODOAuto-generated method stub
if (keyCode
== KeyEvent.KEYCODE_BACK) {
morePopumenu.disMissMenu();//returntrue;//return false;
這里如果你是返回的true,false,那麼就不會執行系統的返回操作,不能返回//上一個界面,因為這樣就沒有回調父類的onKeyDown方法就返回了。所以應該這樣寫如下:
return super.onKeyDown(keyCode, event);}returnsuper.onKeyDown(keyCode, event);}
第二種方法:
public boolean onKeyDown(int keyCode, KeyEvent event) {// TODOAuto-generated method stub
//重寫方法後,我們就調用父類的方法,這樣以便系統的方法可以調用,這句一肯不能忘記
super.onKeyDown(keyCode, event);
if (keyCode
== KeyEvent.KEYCODE_BACK) {
morePopumenu.disMissMenu();
//現在返回:true,代表讓系統能繼續處理此按鍵的操作
//返回false:代表該按鍵的處理到此結束,不響應系統的處理returntrue;}returnsuper.onKeyDown(keyCode, event);}
希望對你能有所幫助。