Warum zeigt derselbe Code auf verschiedenen Versionen von Android-Telefonen unterschiedliche Ergebnisse an?
phpcn_u1582
phpcn_u1582 2017-06-17 09:16:14
0
2
959

Ich habe einen AccessibilityService geschrieben, um WeChat zu steuern. Im weiteren Verlauf stieß ich jedoch auf die folgende Situation: Einige Codes liefen auf einem Android 4.4-Computer (Telefon A, Huawei Honor 6+, Android 4.4) und auf einem Android 7.0-Computer (Telefon B, Huawei P9). Es ergeben sich also 2 Probleme.

1. Führen Sie den AccessibilityService-Code auf dem Mobiltelefon aus, der die folgenden zwei Zeilen enthält:

Log.d(TAG, "获取事件-->Log.d" + event);
Log.w(TAG, "获取事件-->Log.w" + event);

Auf Mobiltelefon A kann LogCat zwei Protokolle anzeigen, auf Mobiltelefon B jedoch nur ein Protokoll.

2. Beim Abrufen des Fensterknotens:

 AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();
        if(nodeInfo == null) {
            Log.w(TAG, "rootWindow为空");
            return ;
        }

Auf Mobiltelefon A (Huawei Honor 6+, Android 4.4) können die Knoteninformationen von WeChat (com.tencent.mm) abgerufen werden, auf Mobiltelefon B (Huawei P9, Android 7.0) jedoch die Systemschnittstelle (ui. laucher) wird angezeigt) Knoteninformationen. Sehr verwirrt.


Alle Codes lauten wie folgt:


public class AcceServ  extends AccessibilityService {

    private String TAG = getClass().getSimpleName();
    private  boolean  isFinish = false;
    private int index = 1;

    protected void onServiceConnected()
    {

        super.onServiceConnected();
        Log.d(TAG, "onServiceConnected!" );
        Log.w(TAG, "onServiceConnected!" );
        Toast.makeText(AcceServ.this,"连接服务成功。请开启AcceServ", Toast.LENGTH_LONG).show();}
    
    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        final int eventType = event.getEventType();
        Log.d(TAG, "获取事件-->" + event);
        Log.w(TAG, "获取事件-->" + event);

        AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();
        if(nodeInfo == null) {
            Log.w(TAG, "rootWindow为空");
            return ;}
                do_some_thing();}

    @Override
    public void onInterrupt() {}
  
}

phpcn_u1582
phpcn_u1582

Antworte allen(2)
左手右手慢动作

应该不是你代码的问题,各家的UI System魔改了很多东西,无法得知真实情况。

为情所困

谢邀。
没玩过AccessibilityService服务,我想说:
1、要开权限吗?先上权限管理里面看看权限开了没。
2、同楼上,有可能是ROM的问题。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!