8

Я хочу читать/получать доступ/регистрировать уведомления, снятые на панели уведомлений другими приложениями.Как получить уведомление, когда уведомление будет уведомлено

Я искал Intents и PendingIntents много, но не смог найти решение.

Должно ли мое приложение необходимо получать уведомление при увольнении любого уведомления?

Или система андроидов обеспечивает чтение уведомлений приложениями пользовательского уровня?

ответ

5

Наконец-то получил ответ. !!! Использование AccessibilityService

public class NotificationService extends AccessibilityService { 

@Override 
public void onAccessibilityEvent(AccessibilityEvent event) { 
    // TODO Auto-generated method stub. 
//Code when the event is caught 
    } 
@Override 
public void onInterrupt() { 
    // TODO Auto-generated method stub. 

} 

@Override 
protected void onServiceConnected() { 
    AccessibilityServiceInfo info = new AccessibilityServiceInfo(); 
     info.feedbackType = 1; 
      info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED; 
     info.notificationTimeout = 100; 
     setServiceInfo(info); 
    } 
} 

И мой манифеста:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="org.test.notify" 
android:versionCode="1" 
android:versionName="1.0" > 
<uses-sdk android:minSdkVersion="8" /> 
<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <service android:name=".NotificationService" android:enabled="true"> 
      <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
      <action android:name="android.accessibilityservice.AccessibilityService"/> 
     </intent-filter> 
    </service> 
    </application> 
</manifest> 

Наслаждайтесь Coding !!!. :)

+1

Код предназначен для обнаружения событий, связанных с уведомлениями. При изменении 'info.eventTypes =' мы можем поймать разные типы событий. – Kishore

+0

Я пытаюсь получить доступ к подключенному к сервису методу, но он терпит неудачу, требует ли он каких-либо разрешений. – Calvin

+0

@Calvin: вам нужно вручную настроить службу специальных возможностей из «Настройки» («Настройки» -> «Доступность») – Kushal

0

API не имеет доступа к любому уведомлению. По крайней мере, это будет дыра в безопасности. Только вы можете поймать некоторые события, которые вызывают уведомления (например, смс).

0

A Notification поднят путем отправки Intent.

Intent intent = new Intent(this, NotificationReceiver.class); 

В NotificationReceiver ловит Intent и всплывает Notification.

В одном из ваших приложений можно поймать то же самое Intent, используя BroadCastReceiver и фильтровать на нужный Intent.

+0

Не существует намерений «изменение состояния панели уведомлений» или «уведомление об увольнении». – Kishore

+0

Это правда, но уведомления запускаются с использованием намерений. И намерения могут быть пойманы с помощью BroadCastReceiver. При всем этом все зависит от того, какого рода Nofication вы хотите получить. – DroidBender

+0

На самом деле я хочу регистрировать все уведомления. Поэтому я ищу общий метод для обнаружения всех уведомлений. – Kishore

 Смежные вопросы

  • Нет связанных вопросов^_^