android - 安卓如何实现指纹解锁手机后自动启动一段代码(或某APP)?
PHPz
PHPz 2017-04-18 09:03:58
0
2
464
背景:想实现驾车时有话想说给某微信好友老王,用指纹解锁后自动启动微信APP,以实现不用低头看手机 就能给老王发出一段语音。 流程如下:

1、指纹解锁手机。手机解锁
2、手指仍不离开指纹感应器,(手机检测指纹感应器被按下了2s)就自动启动微信
3、微信启动以后,调用AccessbilityServices或Root模拟点击等方式,点击老王头像
4、切换到语音输入模式,并模拟点击,自动按下微信“录音”按键
5、检测手指是否还在感应器上,如果手指离开了,就模拟点击松开微信“录音”,语音发送出去。

目前的问题在于:如何将指纹解锁与程序启动关联起来?比如用中指指纹解锁后,自动唤醒写好的Services?(然后这个有着Root权限的Services就可以完成2——4的流程了)
PHPz
PHPz

学习是最好的投资!

全部回覆 (2)
巴扎黑

可以在Service中動態註冊鎖定螢幕廣播監聽,監聽用戶的解鎖行為,由service保證常駐後台,一旦收到解鎖廣播,就做相應的業務操作.

1.註冊螢幕廣播

IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_SCREEN_ON); filter.addAction(Intent.ACTION_SCREEN_OFF); //解锁 filter.addAction(Intent.ACTION_USER_PRESENT); registerReceiver(new ScreenReceiver(), filter);

2.在解鎖廣播中做相關操作

private class ScreenReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { switch (intent.getAction()){ case Intent.ACTION_SCREEN_ON: // 开屏 Log.i(TAG, "onReceive: ON"); break; case Intent.ACTION_SCREEN_OFF: // 锁屏 Log.i(TAG, "onReceive: OFF"); break; case Intent.ACTION_USER_PRESENT: // 解锁屏幕 Log.i(TAG, "onReceive: PRESENT"); //do something break; default: break; }; } }
    左手右手慢动作

    拋一個場景問題,都是指紋解鎖,你如何區分正在開車狀態和非開車狀態?回到正題,前一個答者的螢幕廣播監聽是一個可用思路,也許你的第二步能實現,但即使你有了AccessbilityServices或root的協助,恐怕你也找不到老王。不談技術的話這是件挺壞的事情。

      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!