嗯,我正在尝试实现其中一项服务,我在这里使用代码:http://developer.android.com/training/accessibility/service.html#create,但由于在系统设置中看不到该服务,因此无法启用该服务。有人可以帮我吗?
清单:
<service android:name=".MyAccessibilityService" >
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
</service>
MyAccessibilityService.java
import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
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);
}
}
好吧,我在AndroidManifest.xml
中留了一些重要的内容,因此现在可以正常使用了。这是新清单
<service
android:name=".NotificationService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
class=".NotificationService"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action
android:name=".NotificationService"
android:value=".NotificationService" />
</intent-filter>
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
</service>
[花了我2个小时的时间才意识到我的<accessibility-service />
文件中的.xml
标记有错字。
我写的是<accessability-service />
,而不是<accessibility-service />
。
如果你像我一样,不客气(和复制粘贴一切)。