recherche

Maison  >  Questions et réponses  >  le corps du texte

android - 安卓如何实现指纹解锁手机后自动启动一段代码(或某APP)?

背景:想实现驾车时有话想说给某微信好友老王,用指纹解锁后自动启动微信APP,以实现不用低头看手机 就能给老王发出一段语音。
流程如下:

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

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

répondre à tous(2)je répondrai

  • 巴扎黑

    巴扎黑2017-04-18 09:05:58

    Vous pouvez enregistrer dynamiquement la surveillance de la diffusion de l'écran de verrouillage dans le service pour surveiller le comportement de déverrouillage de l'utilisateur. Le service garantit qu'il reste en arrière-plan une fois la diffusion de déverrouillage reçue, les opérations commerciales correspondantes seront effectuées.

    1.Enregistrer la diffusion d'écran

    Filtre IntentFilter = new IntentFilter();
    filtre.addAction(Intent.ACTION_SCREEN_ON);
    filtre.addAction(Intent.ACTION_SCREEN_OFF);
    //Ouvrir
    filtre.addAction(Intent.ACTION_USER_PRESENT);
    registerReceiver(nouveau ScreenReceiver(), filtre);
    

    2. Effectuez les opérations associées dans la diffusion de déverrouillage

    classe privée ScreenReceiver étend BroadcastReceiver {
        @Outrepasser
        public void onReceive (contexte contextuel, intention d'intention) {
            commutateur (intent.getAction()){
                cas Intent.ACTION_SCREEN_ON :
                    //Ouvrir l'écran
                    Log.i(TAG, "onReceive: ON");
                    casser;
                cas Intent.ACTION_SCREEN_OFF :
                    // écran de verrouillage
                    Log.i(TAG, "onReceive: OFF");
                    casser;
                cas Intent.ACTION_USER_PRESENT :
                    // Déverrouiller l'écran
                    Log.i(TAG, "onReceive: PRESENT");
                    //faire quelque chose
                    casser;
                défaut:
                    casser;
            } ;
        }
    

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-18 09:05:58

    Pour soulever une question de scénario, il s'agit uniquement du déverrouillage par empreinte digitale. Comment faites-vous la distinction entre les états de conduite et de non-conduite ? Revenons au sujet, la surveillance de la diffusion d'écran du répondeur précédent est une idée possible. Peut-être que votre deuxième étape peut être réalisée, mais même si vous avez l'aide d'AccessbilityServices ou de root, je crains que vous ne puissiez pas trouver Lao Wang. Sans parler de technologie, c’est une mauvaise chose.

    répondre
    0
  • Annulerrépondre