我想爲Qualcomm Toq Smartwatch製作通知小程序。它有一個預製的,但它不適用於Android棒棒糖,所以我決定自己創建一個。我閱讀了關於使用輔助功能服務的信息,但它對我無效。有人可以找到我的代碼有什麼問題嗎?我再次檢查併爲服務啓用了「設置>輔助功能」,所以看起來不是問題。通過代碼獲取所有Android棒棒糖通知
Android清單:
<service android:name=".ToqAccessibilityService"
android:label="@string/service_name"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/accessibilityservice" />
</service>
然後代碼:
public class ToqAccessibilityService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent e) {
Log.d("ToqAN","Recieved event: "+AccessibilityEvent.eventTypeToString(e.getEventType()));
Parcelable data = e.getParcelableData();
if (data instanceof Notification) {
Log.d("ToqAN","Recieved notification");
Notification notification = (Notification) data;
Log.d("ToqAN","ticker: " + notification.tickerText);
Log.d("ToqAN","icon: " + notification.icon);
Log.d("ToqAN", "notification: "+ e.getText());
}
}
@Override
public void onInterrupt() {}
}
的配置XML
<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
android:accessibilityEventTypes="typeNotificationStateChanged"
android:accessibilityFeedbackType="feedbackAllMask"
android:notificationTimeout="100"
android:description="@string/accessibility_service_description"
android:accessibilityFlags="flagDefault"
android:canRetrieveWindowContent="false"/>
如果我改變 「typeNotificationStateChanged」 爲 「typeAllMask」我得到所有類型的點擊和窗口事件,但沒有一個關於通知的事件。有人在我的代碼中可能會出錯嗎?我知道有很多類似的問題,但我沒有在這些條目中找到任何解決方案。
非常感謝您提前!
謝謝CitoPaez這個有用的答案。我在Android L Accessibility服務中也面臨同樣的問題。再次感謝你 – Kushal 2015-03-12 13:25:20