當前位置:
首頁 > 知識 > Android系統——輸入系統(十五)實戰 使用GlobalKey一鍵啟動程序

Android系統——輸入系統(十五)實戰 使用GlobalKey一鍵啟動程序

Android系統--輸入系統(十五)實戰_使用GlobalKey一鍵啟動程序1. 一鍵啟動的過程1.1 對於global key, 系統會根據global_keys.xml發送消息給某個組件1.2 APP應該註冊廣播消息的接收者1.2.1 編寫BroadcastReceiver派生類, 實現消息處理函數

package com.thisway.app_0001_leddemo;
//注意包名,可以是自己的報名,但是後面的實驗當中的操作需要根據包名修改

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

/**
* Created by alienware on 2017/5/12.
*/
public class MyBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "myReceiver receive", Toast.LENGTH_SHORT).show;

Intent intentNewTask=new Intent(context,MainActivity.class);
intentNewTask.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intentNewTask);

}
}

1.2.2 註冊派生類: 修改 AndroidManifest.xml,添加下列代碼,實現靜態註冊





1.3 然後在該組件中啟動app2. 具體操作流程2.1 手工發廣播將編寫好的安卓應用程序下載到Tiny4412開發板後,關閉該應用程序進程,在串口終端執行如下命令,程序被喚醒。

am broadcast -a android.intent.action.GLOBAL_BUTTON -n com.thisway.app_0001_leddemo/.MyBroadcastReceiver

2.2 用按鍵觸發2.2.1 修改 /work/android-5.0.2/frameworks/base/core/res/res/xml/global_keys.xml,在該文件添加如下代碼

添加:

2.2.2 在Ubuntu下編譯AndroidSDK,執行如下命令,生成 framework-res.apk ( out/target/product/tiny4412/system/framework/framework-res.apk)

mmm frameworks/base/core/res

2.2.3 把生成的framework-res.apk通過adb push放到單板目錄上/system/framework/;註明:先以rw方式remount /system, 才能複製,故執行如下命令,再進行複製操作

su
mount -o remount,rw /system

2.2.4 修改驅動程序對應的kl文件(對於TV鍵不需要修改, scancode 377就對應TV鍵),執行下列操作

cp /system/usr/keylayout/Generic.kl /data/system/devices/keylayout/
mv Generic.kl InputEmulatorFromLKQ_net.kl

2.3.5 重啟開發板,並裝載模擬驅動

reboot
insmod /data/local/InputEmulator.ko

2.3.6 模擬上報按鍵,APP被喚醒

sendevent /dev/input/event5 1 377 1
sendevent /dev/input/event5 1 377 0
sendevent /dev/input/event5 0 0 0

2.3 不使用驅動而使用以下命令模擬按鍵,可以喚醒APP

input keyevent TV

3. 總結本次博文主要實現一鍵啟動APP過程,如果需要真實按鍵,則需要自己編寫一個按鍵驅動程序。下次博文將對APP跟輸入系統建立聯繫的過程進行具體分析。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 達人科技 的精彩文章:

MySql單表最大8000W+ 之資料庫遇瓶頸記
一顆簡單的JDBC栗子
nodejs伺服器部署教程二
使用JS開發桌面端應用程序NW.js-3-開發問題小記
raft如何實現Linearizable Read

TAG:達人科技 |

您可能感興趣

Google Android Wear智能手錶操作系統更名為Wear OS by Google
Nokia 7+曝光採用Android One系統
小米Pro/Air筆記本重裝系統教程及開機No Bootable Devices解決方案
滲透技巧——獲取Windows系統下DPAPI中的MasterKey
The Nervous System 神經系統
谷歌或將Android Wear系統改名為Wear OS
格里芬導彈系統 Griffin Missile System
Surface Phone蹤跡再現:運行Andromeda系統
Universal Laser Systems(R)的ULTRA平台系列擴展了材料處理的激光器系統組合
谷歌智能手錶操作系統更名為Wear OS by Google
Google 的新操作系統 Fuchsia OS 的非官方的 Web版Demo 釋出
Prometheus+Grafana實現監控系統
Google要用桌面操作系統Debian了
Full Throttle購置Funktion One Vero系統
中興發布Tempo Go手機:運行Android Go系統
搭載混動系統的大眾Atlas Cross Sport引人關注
Nougat是Android系列使用人數最多的手機操作系統
Valve空間音頻系統正式支持AMD TrueAudio Next技術
Google決定用gLinux取代Goobuntu Linux操作系統
Facebook透露內部Fabric Aggregator分散式網路系統設計