您现在的位置: 爱51代码网 >> 范文 >> 文章正文
如何让一个service监听按键事件

如何让一个service监听按键事件?
另外我还想让这个服务开机就能运行?
重写一个函数public boolean onKeyDown(int keyCode, KeyEvent event)
开机运行比较简单通过应用程序自行在系统中登记注册事件(即Intent)来响应系统产生的各类消息。

例如Android实现系统开机自启动程需要在Manifest中加入如下Intent-filter及权限Uses-permission即可。
    <intent-filter>  
        <action android:name="android.intent.action.BOOT_COMPLETED"/>  
(修改时候主要是去掉上面该行即可)
        <category android:name="android.intent.category.HOME" />  
    </intent-filter>  
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>    

输入事件从驱动读出后由WindowManagerService派发给焦点进程的焦点view上面, 具体我不知道如何能获取,但有想法供你参考。
1.越过框架层,在你的service里直接通过jni去读内核Input子系统报上来的消息
2.看看WindowManager有没有提供截取按键消息的binder接口出来
3.不行就想想为何有这种需求,是不是想歪了

开机运行需要在Manifect里加个Broadcastreceiver,收到Bootcomplete消息后start你的server

1、改变/dev/input/eventX的读写权限
2、jni写一个so,用select或者epoll来监听input事件,可以用inotify实现
3、app调用jni接口就可以了

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    android手机无法与eclipse或电脑
    C/C++洗牌算法源代码
    servlet技术实现用户名唯一的验证
    E-business suite system servic
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    asp中有一段javascipt的网页鼠标
    sharepoint 2010 获取用户信息Us
    设计包含max函数的队列
    随机从数组中取出指定的不重复的
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    sharepoint 2010 获取用户信息Us
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    恢复使用繁体字可行性研究报告
    android程序运行崩溃,然后不
    监听去电状态的时候状态直接
    监听去电状态的时候状态直接
    qml和c++交互 用的modelist 
    android studio 无法启动
    Android 2.3.5系统内置图片G
    Android http post 上传图片
    安卓本地软件修改密码的实现
    jni thread 退出异常 , nati
    error: Error: No resource 
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |