AndroidTV開發中所有的遙控器按鍵監聽及注意事項,新增home鍵監聽
原文:Android TV開發中所有的遙控器按鍵監聽及注意事項,新增home鍵監聽
簡單記錄下android 盒子開發遙控器的監聽 ,希望能幫到新入門的朋友們
不多說,直接貼程式碼
public class MainActivity extends Activity {
private String TAG="key";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_ENTER: //確定鍵enter
case KeyEvent.KEYCODE_DPAD_CENTER:
Log.d(TAG,"enter--->");
break;
case KeyEvent.KEYCODE_BACK: //返回鍵
Log.d(TAG,"back--->");
return true; //這裡由於break會退出,所以我們自己要處理掉 不返回上一層
case KeyEvent.KEYCODE_SETTINGS: //設定鍵
Log.d(TAG,"setting--->");
break;
case KeyEvent.KEYCODE_DPAD_DOWN: //向下鍵
/* 實際開發中有時候會觸發兩次,所以要判斷一下按下時觸發 ,鬆開按鍵時不觸發
* exp:KeyEvent.ACTION_UP
*/
if (event.getAction() == KeyEvent.ACTION_DOWN){
Log.d(TAG,"down--->");
}
break;
case KeyEvent.KEYCODE_DPAD_UP: //向上鍵
Log.d(TAG,"up--->");
break;
case KeyEvent.KEYCODE_0: //數字鍵0
Log.d(TAG,"0--->");
break;
case KeyEvent.KEYCODE_DPAD_LEFT: //向左鍵
Log.d(TAG,"left--->");
break;
case KeyEvent.KEYCODE_DPAD_RIGHT: //向右鍵
Log.d(TAG,"right--->");
break;
case KeyEvent.KEYCODE_INFO: //info鍵
Log.d(TAG,"info--->");
break;
case KeyEvent.KEYCODE_PAGE_DOWN: //向上翻頁鍵
case KeyEvent.KEYCODE_MEDIA_NEXT:
Log.d(TAG,"page down--->");
break;
case KeyEvent.KEYCODE_PAGE_UP: //向下翻頁鍵
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
Log.d(TAG,"page up--->");
break;
case KeyEvent.KEYCODE_VOLUME_UP: //調大聲音鍵
Log.d(TAG,"voice up--->");
break;
case KeyEvent.KEYCODE_VOLUME_DOWN: //降低聲音鍵
Log.d(TAG,"voice down--->");
break;
case KeyEvent.KEYCODE_VOLUME_MUTE: //禁用聲音
Log.d(TAG,"voice mute--->");
break;
break;
default:
break;
}
return super.onKeyDown(keyCode, event);
}
}
效果如下:
home鍵的監聽要監聽廣播:
class HomeRecaiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)){
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
if(SYSTEM_DIALOG_REASON_HOME_KEY.equals(reason)){
Toast.makeText(MainActivity.this,"home鍵觸發",0).show();
Log.d(TAG, "home鍵觸發");
}
}
}
}
在oncreate()註冊廣播
public final String SYSTEM_DIALOG_REASON_KEY = "reason";
public final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";
/**
* 註冊廣播
*/
private void initReceiver() {
homeReceiver = new HomeRecaiver();
IntentFilter filter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
registerReceiver(homeReceiver, filter);
}
退出登出廣播
@Override
protected void onDestroy() {
super.onDestroy();
if(homeReceiver!=null){
unregisterReceiver(homeReceiver);
}
}
相關文章
- Android Home鍵監聽Android
- Android Home鍵、鎖屏鍵監聽Android
- home鍵監聽(Android應用切換到後臺監聽)Android
- 【DBA】Windows 下Oracle 監聽配置注意事項WindowsOracle
- Android 監聽home鍵的動作Android
- 安卓使用物理鍵監聽器安卓
- listener監聽監控指令碼指令碼
- keyCode對照表及JS監聽組合按鍵JS
- swift 訊息監聽和鍵值監聽(kvo)Swift
- oracle例項和監聽器Oracle
- 新增監聽密碼密碼
- jQuery實現的監聽回車按鍵程式碼例項jQuery
- 監聽鍵盤事件事件
- java鍵盤監聽之視窗監聽的實現Java
- SQL Server AlwaysOn新增監聽器失敗SQLServer
- jmeter-結果分析,新增監聽器JMeter
- 鍵盤監聽事件--向左事件
- java監聽組合鍵Java
- javascript監聽鍵盤事件JavaScript事件
- Android ListView中按鈕監聽器設定及優化AndroidView優化
- js監聽鍵盤事件程式碼例項例項JS事件
- 監聽 watch props物件屬性監聽 或深度監聽物件
- oracle 監聽器配置Oracle
- JS事件監聽器JS事件
- 【監聽】手工配置tnsnames.ora檔案注意事項——謹慎處理空格
- 手把手教你實現Java監聽器全域性監控Java
- 動態監聽與靜態監聽
- 動態監聽和靜態監聽
- python pynput監聽鍵盤Python
- Android 監聽鍵盤彈起及隱藏Android
- 【監聽】配置服務端靜態(動態)監聽/修改監聽埠及引數local_listener作用服務端
- 事件和事件監聽器事件
- javaWeb中的監聽器JavaWeb
- 如何移除事件監聽器事件
- 遠端控制監聽器
- 27、監聽器學習
- passive 的事件監聽器事件
- oracle 監聽器學習Oracle