我試圖獲得關於輔助功能事件的一些教程。我找到了一個輔助教程。這是很好的&我在eclipse &中實現在我的平板電腦5.1.1運行,nexus。onAccessibityEvent在Android中未調用

編碼。

MyAccessibilityService.java

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();

String s=String.valueOf(event.getEventType());

Toast.makeText(MyAccessibilityService.this, s, Toast.LENGTH_LONG).show();

Toast.makeText(MyAccessibilityService.this, getEventText(event), Toast.LENGTH_LONG).show();

Log.v(TAG, String.format(

"onAccessibilityEvent: [type] %s [class] %s [package] %s [time] %s [text] %s",

getEventType(event), event.getClassName(), event.getPackageName(),

event.getEventTime(), getEventText(event)));

} `

private String getEventType(AccessibilityEvent event) {

switch (event.getEventType()) {

case AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED:

return "TYPE_NOTIFICATION_STATE_CHANGED";

case AccessibilityEvent.TYPE_VIEW_CLICKED:

return "TYPE_VIEW_CLICKED";

case AccessibilityEvent.TYPE_VIEW_FOCUSED:

return "TYPE_VIEW_FOCUSED";

case AccessibilityEvent.TYPE_VIEW_LONG_CLICKED:

return "TYPE_VIEW_LONG_CLICKED";

case AccessibilityEvent.TYPE_VIEW_SELECTED:

return "TYPE_VIEW_SELECTED";

case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:

return "TYPE_WINDOW_STATE_CHANGED";

case AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED:

return "TYPE_VIEW_TEXT_CHANGED";

}

return "default";

}

private String getEventText(AccessibilityEvent event) {

StringBuilder sb = new StringBuilder();

for (CharSequence s : event.getText()) {

sb.append(s);

}

return sb.toString();

}

@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);

}

}

在此代碼如果刪除getEventType & getEventtext起作用它示出了作爲64東西事件類型。如果我添加這兩個函數我不能得到事件操作。我嘗試了幾次,我打開我的應用程序來聽取可訪問性點擊事件。

我的清單文件低於 AndroidManifest.xml中

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">

android:name="android.accessibilityservice"

android:resource="@xml/accessibility" />

android:name=".Toast2Activity"

android:label="@string/app_name" >

任何一個可以幫我找出我在此代碼所做的缺陷。提前致謝。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐