安卓後臺監聽按鍵事件
我們都知道要做監聽的話首先需要去重寫Activity的OnkeyDown方法,然而這種辦法只有當Activity在前臺的時候才能用!在後臺的話就不行了。
可以用的方法
利用AccessibilityService(安卓的無障礙輔助功能)
步驟.
1.配置檔案程式碼
<application>
<service android:name="你的無障礙輔助類名"
android:label="@string/accessibility_service_label">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
</service>
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />
</application>
2.這個 meta-data元素指的是在應用程式的資源目錄建立的一個XML檔案。(/res/xml/accessibility_service_config.xml). 下面的程式碼顯示了服務配置檔案的示例內容:<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
android:accessibilityEventTypes="typeAllMask"
android:accessibilityFeedbackType="feedbackGeneric"
android:accessibilityFlags="flagRequestFilterKeyEvents"
android:canRetrieveWindowContent="true"
android:canRequestFilterKeyEvents="true"
android:description="@string/accessibility_description"
android:notificationTimeout="100"/>
3.自己新建一個類去繼承他並重寫他的3個方法 假設你要監聽按鍵的話就重寫OnKeyEvent方法
public class RobMoney extends AccessibilityService {
private static final String TAG = "dxj";
private Calendar c = Calendar.getInstance();
int flag=0;
@Override
protected boolean onKeyEvent(KeyEvent event) {
Log.i(TAG, "onKeyEvent");
int key = event.getKeyCode();
switch(key){
case KeyEvent.KEYCODE_VOLUME_DOWN:
Intent downintent = new Intent("com.exmaple.broadcaster.KEYDOWN");
downintent.putExtra("dtime", System.currentTimeMillis());
if(flag==0){
sendBroadcast(downintent);
flag+=1;
}else if (flag==1) {
flag=0;
}
Log.i(TAG, "KEYCODE_VOLUME_DOWN");
break;
case KeyEvent.KEYCODE_VOLUME_UP:
Intent upintent = new Intent("com.exmaple.broadcaster.KEYUP");
upintent.putExtra("utime", System.currentTimeMillis());
if(flag==0){
sendBroadcast(upintent);
flag+=1;
}else if (flag==1) {
flag=0;
}
Log.i(TAG, "KEYCODE_VOLUME_UP");
break;
default:
break;
}
return super.onKeyEvent(event);
}
@Override
public void onInterrupt() {
}
@Override
public void onCreate() {
Log.i(TAG, "RobMoney::onCreate");
super.onCreate();
}
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
// TODO Auto-generated method stub
}
}
5.再去配置檔案裡面註冊一個廣播或者動態註冊,我這裡的話是通過監聽這個事件來發送一個廣播,廣播來處理事件原始碼:http://pan.baidu.com/share/link?shareid=2641899309&uk=4097462172 以前還不會github。讓大家見笑了2018.5.7
相關推薦
安卓後臺監聽按鍵事件
我們都知道要做監聽的話首先需要去重寫Activity的OnkeyDown方法,然而這種辦法只有當Activity在前臺的時候才能用!在後臺的話就不行了。可以用的方法利用AccessibilityService(安卓的無障礙輔助功能)步驟.1.配置檔案程式碼<applic
android 後臺監聽按鍵事件方法及demo
demo下載地址 =============== 1.概述:最方便的方式還是修改系統原始碼按鍵事件,將鍵值發廣播出來給應用監聽,其次是用設定裡面的輔助功能的AccessibilityService也可監聽按鍵事件,但是前提是需要在設定中開啟此輔助功能的開關才行,前面的
【PHP】安卓手機監聽物理返回按鍵
if(window.history && window.history.pushState) { $(window).on('popstate', function() { var hashLocation = location.hash;
DialogFragment 監聽按鍵事件的方法(onkeydown)
this.getDialog().setOnKeyListener(new OnKeyListener() { public boolean onKey(DialogInterface dialog, int keyCode, KeyE
iOS 監聽音量鍵事件的兩個方法+後臺監聽音量鍵
方法一,使用通知: 1、新增監聽 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeDidChange:)name:@"AVSystemContro
JS 事件綁定、事件監聽、事件委托詳細介紹
兼容性 log 查看 and == 常用 提高 監聽 live 事件綁定 要想讓 JavaScript 對用戶的操作作出響應,首先要對 DOM 元素綁定事件處理函數。所謂事件處理函數,就是處理用戶操作的函數,不同的操作對應不同的名稱。 在JavaScript中,有三種常用的
JS中的事件監聽與事件流
pan 交互 ack 其他 獲得 發生 listen 監聽器 pre 事件監聽: 使用監聽器(eventListener)來預定事件,在傳統軟件工程中稱成為觀察者模式 執行某種操作時(特定的交互瞬間),會產生對象,對象會沿事件流的方向傳播。 事件流: 事件流有
vue監聽滾動事件 實現動態錨點
title 復制代碼 嘗試 理念 元素 滾動 功能 time 滿足 前幾天做項目的時候,需要實現一個動態錨點的效果 如果是傳統項目,這個效果就非常簡單。但是放到 Vue 中,就有兩大難題: 1. 在沒有 jQuery 的 animate() 方法的情況下,如何實現平滑滾動
事件綁定、事件監聽和事件委托
沒有 ack cap 總結 事件類型 ava 動態 blog 關於 在JavaScript的學習中,我們經常會遇到JavaScript的事件機制,例如,事件綁定、事件監聽、事件委托(事件代理)等。 一、事件綁定 要想讓 JavaScript 對用戶的操作作出響應,首先要對
js 監聽後退事件及跳轉頁面
gpo post script log push pan rip var pre //直接跳轉 window.location.href="b.html"; //返回上一級頁面 window.history.back(-1); //返回下一級頁面 window.his
3.1.1 基於監聽的事件處理機制
講解 基於 example this apk imp cal href eat 3.1.1 基於監聽的事件處理機制 http://www.runoob.com/w3cnote/android-tutorial-listen-event-handle.html 本節引言:
js監聽鍵盤事件
code key inf 回車事件 amp button pre 圖片 function 1、監聽全局鍵盤按下事件,例如監聽全局回車事件 1 $(document).keydown(function(event){ 2 if(event.keyCode
jquery監聽滾動事件獲取scrollTop
測試 element UNC data- document font ole span 谷歌 css: .anchor_reached { color: #0073eb; } jquery: $(window).scroll(function(event){
jq 監聽鍵盤事件
span 各類 con 處理 按鍵 ole 簡單的 一個 簡單 其實這個也是挺簡單的一些東西。也就是幾個參數: 一、首先需要知道的是: 1、keydown() keydown事件會在鍵盤按下時觸發. 2、key
通過jna簡單實現java後臺監聽鍵盤觸發修改系統時間
由於玩某網遊需要在出副本時等一分鐘,而修改系統時間+1分鐘可以提前出副本,避免麻煩寫了個java後臺監聽鍵盤觸發修改系統時間的指令碼,當按下設定好的鍵盤組合即呼叫修改函式。 修改時間的函式程式碼如下(呼叫CMD命令):
監聽checkbox事件
<!DOCTYPE html> <html> <head> <title></title> </head> <script> function onClickHander(obj){
jquery on監聽click事件在 ios無效Android沒事
<div class='center-popWindow-closeBtn'>關閉</div> $('body').on('click', '.center-popWindow-closeBtn', function(){ c
安卓後臺保活黑科技 播放無聲音樂
1、準備一段無聲的音訊,新建一個播放音樂的Service類,將播放模式改為無限迴圈播放。在其onDestroy方法中對自己重新啟動。 public class PlayerMusicService extends Service { private final static String TAG
vue中使用element-ui監聽鍵盤事件
vue中element-ui在使用el-input的時候,由於el-input在輸入框的外層添加了一層的<div class="el-input"></div>,把input隱藏在子級,所以el-input新增上了keyup無響應; <el
python pynput 監聽按鍵持續時間
from pynput import keyboard import time def on_press(key): global last_time last_time = time.time() return False def on_rel