Mengapakah kod yang sama memaparkan hasil yang berbeza pada versi telefon Android yang berbeza?
phpcn_u1582
phpcn_u1582 2017-06-17 09:16:14
0
2
1067

Saya menulis AccessibilityService untuk mengawal WeChat. Tetapi dalam proses seterusnya, saya menghadapi situasi berikut: beberapa kod dijalankan pada mesin Android 4.4 (telefon A, Huawei Honor 6+, Android 4.4) dan pada mesin Android 7.0 (telefon B, Huawei P9 Tidak sama,). jadi 2 masalah timbul.

1 Jalankan kod AccessibilityService pada telefon mudah alih, yang mempunyai dua baris berikut:

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

Pada telefon bimbit A, LogCat boleh memaparkan dua log, tetapi pada telefon bimbit B, ia hanya boleh memaparkan satu log.

2. Apabila mendapat nod tingkap:

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

Pada telefon mudah alih A (Huawei Honor 6+, Android 4.4), maklumat nod WeChat (com.tencent.mm) boleh diperolehi, tetapi pada telefon mudah alih B (Huawei P9, Android 7.0), antara muka sistem (ui. laucher) dipaparkan ) maklumat nod. sangat keliru.


Semua kod adalah seperti berikut:


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

membalas semua(2)
左手右手慢动作

Ia sepatutnya tidak menjadi masalah dengan kod anda Banyak perkara telah diubah dalam Sistem UI setiap syarikat, jadi adalah mustahil untuk mengetahui situasi sebenar.

为情所困

Terima kasih atas jemputan.
Saya tidak pernah bermain dengan perkhidmatan AccessibilityService Saya ingin mengatakan:
1. Mula-mula pergi ke pengurusan kebenaran untuk melihat sama ada kebenaran didayakan.
2 Sama seperti di atas, mungkin masalah ROM.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan