[英]Accessibility service remove icon when user close needed application
我使用輔助功能服務在Google相冊應用上繪制圖標,並使用以下代碼進行繪制:
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
info.feedbackType = AccessibilityServiceInfo.FEEDBACK_ALL_MASK;
info.packageNames = new String[] {"com.google.android.apps.photos"};
info.notificationTimeout = 100;
setServiceInfo(info);
但是,當用戶關閉應用程序或將其隱藏時,圖標會消失。 我沒有發現任何可以處理這種情況的事件。 有人可以幫我這個忙嗎? 我只想為某些應用繪制圖標,並在用戶關閉該應用后將其刪除。
UPDATE
我使用AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED事件並按事件獲取程序包名稱,但是從Android N繪制圖標時,AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED發生了我自己的程序包名稱,並且圖標被刪除了。
我使用以下代碼獲取所有應用程序的事件:
AccessibilityServiceInfo config = new AccessibilityServiceInfo();
config.eventTypes = AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED;
config.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC;
config.notificationTimeout = 100;
if (Build.VERSION.SDK_INT >= 16) {
//Just in case this helps
config.flags = AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
}
setServiceInfo(config);
然后,我在onAccessibilityEvent
方法中過濾應用程序:
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
try { // Try to avoid Security exceptions (Seen in Play Console)
if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {
if (event.getPackageName() != null && event.getClassName() != null) {
ComponentName componentName = new ComponentName(
event.getPackageName().toString(),
event.getClassName().toString()
);
// check componentName and do what you want
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.