Quiero registrar todos los eventos de brindis en Android ics (4.0.3), pero no pude registrar ningún evento del sistema. ¡El servicio simplemente no comenzó!no se inició el servicio de accesibilidad
De acuerdo con esta pregunta: onAccessibilityEvent(AccessibilityEvent event) not intercepting notification
MyAccessibilityService.java
package com.test.toasts2;
import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.app.Notification;
import android.os.Parcelable;
import android.util.Log;
import android.view.accessibility.AccessibilityEvent;
import android.widget.Toast;
public class MyAccessibilityService extends AccessibilityService {
public static final String TAG = "volumeMaster";
@Override
public void onAccessibilityEvent(AccessibilityEvent event)
{
Log.v(TAG, "***** onAccessibilityEvent");
Toast.makeText(getApplicationContext(), "Got event from: " + event.getPackageName(), Toast.LENGTH_LONG).show();
}
@Override
public void onInterrupt()
{
Log.v(TAG, "***** onInterrupt");
}
@Override
public void onServiceConnected()
{
Log.v(TAG, "***** onServiceConnected");
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
info.notificationTimeout = 100;
info.feedbackType = AccessibilityEvent.TYPES_ALL_MASK;
setServiceInfo(info);
}
}
Toast2Activity.java
package com.test.toasts2;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
public class Toast2Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent i = new Intent(this, MyAccessibilityService.class);
startService(i);
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.toasts2"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<service android:name=".MyAccessibilityService" android:label="@string/app_name" android:enabled="true" android:exported="false">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
</service>
<activity
android:name=".Toast2Activity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
que incluyen la etiqueta de actividad en el manifiesto (servicio para iniciar el arranque de aplicaciones), y también trataron de quitar. Nada ha cambiado. El servicio simplemente no se inició. No recibo notificación en log cat (Log.v in on ServiceConected).
Estoy compilando esto como una aplicación normal (no aplicación de sistema), Android 4.0.3. ¿Estoy haciendo algo mal?
proyecto adjunto (puede ser error está en otro lugar, o tal vez estoy recopilando mal): https://dl.dropbox.com/u/1928109/toast2.zip
Parece que no puedo encontrar Servicios de accesibilidad en Android 4.2.1 – Klaasvaak
Tu código es realmente útil. Gracias por eso. ¿Hay alguna forma de activar el servicio de accesibilidad a través del código? – Kameswari
@Kameswari No hay manera de hacer eso, hasta donde yo sé. –