欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

android鍵值,android測試鍵值apk

android的手機,鍵盤定義fn鍵,用作數(shù)字和字母切換,請問這個鍵值應該定義成多少

如果是自定義鍵盤里面的話,xml文件里面的簡直可以是-3,如下內容:

創(chuàng)新互聯(lián)公司是一家專業(yè)提供始興企業(yè)網(wǎng)站建設,專注與成都做網(wǎng)站、成都網(wǎng)站設計、H5頁面制作、小程序制作等業(yè)務。10年已為始興眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡公司優(yōu)惠進行中。

Key android:codes="-3" android:keyWidth="20%p"

android:keyIcon="@drawable/sym_keyboard_done"

android:keyEdgeFlags="left" /

android HOME長按之后的鍵值是多少

home鍵在KeyEvent中的鍵值為3.

ublic static final int KEYCODE_HOME ? ? ? ? ? ?= 3;

當用戶按下home鍵的時候(包括長按),程序會進入到PhoneWindowManager.java類中的public boolean interceptKeyBeforeDispatching(WindowState win, int action, int flags,int keyCode, int scanCode, int metaState, int repeatCount, int policyFlags)這個方法中進行處理。如果用戶是連續(xù)點擊home,此時就要執(zhí)行長按home事件了。

即執(zhí)行mHandler.postDelayed(mHomeLongPress,ViewConfiguration.getGlobalActionKeyTimeout());對應的代碼。也就會跳轉到mHomeLongPress這個Runnable接著往下執(zhí)行。

interceptKeyBeforeDispatching這個方法位于PhoneWindowManager.java中。

位置為:\frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java ?

public?boolean?interceptKeyBeforeDispatching(WindowState?win,?int?action,?int?flags,??

int?keyCode,?int?scanCode,?int?metaState,?int?repeatCount,?int?policyFlags)?{??

final?boolean?down?=?(action?==?KeyEvent.ACTION_DOWN);??

...??

//4、用戶按下home,然后馬上釋放。此時這個條件成立。將之前postDelayed的事件remove掉。此時就不會執(zhí)行長按home事件。??

if?((keyCode?==?KeyEvent.KEYCODE_HOME)??!down)?{??

mHandler.removeCallbacks(mHomeLongPress);??

}??

//5、第一次按下home,mHomePressed為false。??

if?(mHomePressed)?{??

if?(keyCode?==?KeyEvent.KEYCODE_HOME)?{??

//a、如果用戶連續(xù)按下home,此時暫時沒有up事件。所以就不走這里。??

//b、如果用戶沒有連續(xù)按下home,此時過來的是up(move或者)事件。即!down為true,執(zhí)行該方法??

if?(!down)?{??

mHomePressed?=?false;??

if?(!canceled)?{??

boolean?incomingRinging?=?false;??

try?{??

ITelephony?telephonyService?=?getTelephonyService();??

if?(telephonyService?!=?null)?{??

incomingRinging?=?telephonyService.isRinging();??

}??

}?catch?(RemoteException?ex)?{??

Log.w(TAG,?"RemoteException?from?getPhoneInterface()",?ex);??

}??

if?(incomingRinging)?{??

Log.i(TAG,?"Ignoring?HOME;?there's?a?ringing?incoming?call.");??

}?else?{??

//單擊home處理??

launchHomeFromHotKey();??

}??

}?else?{??

Log.i(TAG,?"Ignoring?HOME;?event?canceled.");??

}??

}??

}??

return?true;??

}??

...??

//??1、第一次處理home按下??

if?(keyCode?==?KeyEvent.KEYCODE_HOME)?{??

//?If?a?system?window?has?focus,?then?it?doesn't?make?sense??

//?right?now?to?interact?with?applications.??

WindowManager.LayoutParams?attrs?=?win?!=?null???win.getAttrs()?:?null;??

if?(attrs?!=?null)?{??

final?int?type?=?attrs.type;??

if?(type?==?WindowManager.LayoutParams.TYPE_KEYGUARD??

||?type?==?WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG)?{??

//?the?"app"?is?keyguard,?so?give?it?the?key??

return?false;??

}??

final?int?typeCount?=?WINDOW_TYPES_WHERE_HOME_DOESNT_WORK.length;??

for?(int?i=0;?itypeCount;?i++)?{??

if?(type?==?WINDOW_TYPES_WHERE_HOME_DOESNT_WORK[i])?{??

//?don't?do?anything,?but?also?don't?pass?it?to?the?app??

return?true;??

}??

}??

}??

//??2、第一次按下home,會調用postDelayed發(fā)送一個延時處理的操作。同時將mHomePressed置為true。??

//?如果第5?步?jīng)]有進入if?(!down),此時就要執(zhí)行長按home方法了。??

if?(down??repeatCount?==?0)?{??

if?(!keyguardOn)?{??

mHandler.postDelayed(mHomeLongPress,?ViewConfiguration.getGlobalActionKeyTimeout());??

}??

mHomePressed?=?true;??

}??

return?true;??

}?//其他鍵的處理??

else?if(...){...}

android怎么模擬發(fā)送鍵值

說的具體點,比如你想發(fā)送個哪一個按鍵,試試“+a”,代碼發(fā)出兩行來看看。你后面兩行問得有點搞不清你到底想發(fā)什么鍵。

請教如何查看android鍵值定義

在代碼里看就可以,如

public class Main extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

// 查看android鍵值定義

KeyEvent.(按Alt+/查看所有定義的)

return super.onKeyDown(keyCode, event);

}

Android怎樣監(jiān)聽藍牙耳機的按鍵事件

其實對于Android系統(tǒng),每次按鍵只會有一個唯一「鍵值」響應,使用起來感覺會模模糊糊的,但是其實對于系統(tǒng)來說是很清晰的。

AVRCP全稱(Audio/Video?Remote?Control?Profile),是藍牙協(xié)議中的一個profile。從名字上就可以看出主要應用于Audio/Video控制。每個按鍵并不是獨立的,上-曲/下一曲是在正在播放音樂的時候才會有效,即才會向Android發(fā)送「鍵值」。

基于按鍵從Linux到Android分析具體對于的鍵值:

Linux掃描碼?功能????映射字串???????????????Android鍵值

00c8?200 ? ??開始放音樂??MEDIA_PLAY??????????KEYCODE_MEDIA_PLAY

00c9?201 ? ??停止放音樂??MEDIA_PAUSE?????????KEYCODE_MEDIA_PAUSE

00a3?163 ? ? ? ?下一曲??????MEDIA_NEXT??????????KEYCODE_MEDIA_NEXT

00a5?165 ? ? ? ?上-曲??????MEDIA_PREVIOUS?????KEYCODE_MEDIA_PREVIOUS

Android應用代碼,完整測試應用:TeskKey。

總結:1號鍵會交替發(fā)送KEYCODE_MEDIA_PLAY/KEYCODE_MEDIA_PAUSE;2/3號鍵會在播放音樂時分別發(fā)送KEYCODE_MEDIA_PREVIOUS/.KEYCODE_MEDIA_NEXT。如果想要把藍牙耳機上的按鍵利用起來,可以在接收到KEYCODE_MEDIA_PLAY時播放?無聲音樂?以使能2/3號鍵。這樣就能完整接收3種鍵值了自行控制了。這個具體自行設計(測試代碼已經(jīng)更新包含了)。

注:這種實現(xiàn)并不一定通用,比如我在深度定制的MIUI中測試,盡管啟動的TestKey應用,系統(tǒng)自帶的音樂播放器仍然能同時響應鍵值。

更新:

已經(jīng)更新TestKey源碼,添加對藍牙耳機按鍵的監(jiān)聽,實現(xiàn)方法就是上述中推測的方法,已經(jīng)成功驗證過了。播放音樂參考《Android多媒體開發(fā)--資源文件播放》。效果圖:

需要說明一點的是,程序帶了兩個音樂文件在/res/raw中,默認播放的是lapple.mp3一個有聲音的mp3音樂文件,silence10sec.mp3是一個無聲音的10秒鐘音樂文件,實際應用中可以使用它。

問與答

1.這個只能在播放音樂的狀態(tài)下才能監(jiān)聽到么?

答:根據(jù)上述的原理,這些按鍵也僅僅是應用在控制媒體時使用;且根據(jù)實際驗證沒有播放音樂時藍牙耳機的2/3號鍵是并沒有向Android設備發(fā)送鍵值(從底層Linux來看)。綜上所述,需要通過播放音樂來實現(xiàn)激活其向Android設備發(fā)送鍵值,針對這種情況可以播放一個「沒有聲音」的音樂文件來實現(xiàn),這樣既可以監(jiān)聽到2/3號鍵又可以不影響其它聲音的輸出。可以在前臺時播放音樂,后臺停止播放。

2.我現(xiàn)在主要是想監(jiān)聽得到開關鍵(1號鍵)。 在做一個按下藍牙開關鍵后啟動一個語音識別的功能?

答:在我的測試條件下,1號鍵是可以正常監(jiān)聽到的。1號鍵會交替發(fā)送KEYCODE_MEDIA_PLAY/KEYCODE_MEDIA_PAUSE鍵值。這個鍵不需要模擬播放音樂就可以正常的監(jiān)聽到。

3.?4號按鍵的監(jiān)聽方法

答:所謂的4號按鍵,也就是指本文中的所測試型號的藍牙耳機上并沒有,但有可能其它型號的藍牙耳機上有。我沒有辦法測試驗證,所以這里就簡單敘述一下「新按鍵」的鍵值確定思路:1.先使用TestKey測試應用測試按鍵,測試Android上層是否可以得到對應鍵值。2.如果沒有得到,那么就使用adb?shell?getevent來看Linux底層可以不可以得到鍵值。然后根據(jù)按鍵從Linux到Android來確定Android上層使用的鍵值碼到底是多少。(當然,如果你實在不知道如何監(jiān)聽,把藍牙耳機寄給我,我給你確定也行。:))

注:其實上述文章完全是根據(jù)按鍵從Linux到Android測試確定下來的。那是篇文章是剝開Android外殼來看「按鍵」事件的流程的,方法適用于所有輸入事件:各種按鍵/觸摸/物理鍵盤/鼠標等待輸入設備。沒有一定的Linux開發(fā)經(jīng)驗很難看懂和理解。

4.?Android后臺監(jiān)聽按鍵怎么實現(xiàn)

或:如何啟動一次應用后在后臺一直監(jiān)聽播放鍵?因為有這樣一個場景?在用戶開車的時候需按一下開關鍵就啟動語音識別的功能。

這個問題其實已經(jīng)超出了本文討論的范圍,是Android系統(tǒng)對應用層的鍵盤事件(按鍵)的分發(fā)的問題了。正常情況下,按鍵只會向當前最端的應用分發(fā)鍵盤事件,也就是說在后臺你邊音量鍵都監(jiān)聽不了。

但是既然這種情況(后臺應用監(jiān)聽按鍵)的需求存在,那么就一定有它存在的道理。比如「相機鍵」,按下后直接調出相機到最前臺。從表面上看是相機響應了按鍵,但是從實現(xiàn)方法上來看,并不是通過鍵值來操作,必須通過其它方法,比如廣播或者其它等等。

明白了其中的道理后,那么想要實現(xiàn)就好辦了。先看這個按鍵有沒有廣播,如要有接聽系統(tǒng)中發(fā)出來的廣播;如果沒有那么對于定制系統(tǒng)可以自己在系統(tǒng)中添加一個廣播;總之,正常渠道是沒有辦法在后臺監(jiān)聽一些不應該是你監(jiān)聽到的按鍵的。

更:查了一下,這個按鍵是有廣播的。這樣就可以后臺響應了(不需要C/不需要root)。例子我就不試了,見Android官方例子RandomMusicPlayer。

其中的重點是這個廣播android.intent.action.MEDIA_BUTTON。

名稱欄目:android鍵值,android測試鍵值apk
地址分享:http://chinadenli.net/article39/dsgigsh.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設計公司建站公司用戶體驗搜索引擎優(yōu)化軟件開發(fā)營銷型網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作