8

Tôi muốn đọc/truy cập/ghi nhật ký các thông báo được kích hoạt trên thanh thông báo bằng các ứng dụng khác.Cách nhận thông báo khi thông báo được thông báo

Tôi đã tìm kiếm IntentsPendingIntents rất nhiều, nhưng không thể có giải pháp.

Ứng dụng của tôi có cần được thông báo khi có bất kỳ thông báo nào được kích hoạt không?

Hoặc hệ thống Android có cung cấp nội dung nào đó để đọc thông báo của ứng dụng cấp người dùng không?

Trả lời

5

Cuối cùng cũng có câu trả lời. !!! Sử dụng 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); 
    } 
} 

Và Manifest của tôi là:

<?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> 

Thưởng thức Mã hóa !!!. :)

+1

Mã chỉ để nắm bắt các sự kiện có liên quan đến thông báo. Khi thay đổi 'info.eventTypes =' chúng tôi có thể nắm bắt các loại sự kiện khác nhau. – Kishore

+0

Tôi đang cố gắng đăng nhập vào phương thức kết nối dịch vụ, nhưng không thành công, nó có yêu cầu bất kỳ quyền nào không? – Calvin

+0

@Calvin: Bạn cần bật dịch vụ Trợ năng theo cách thủ công từ Cài đặt (Cài đặt -> Khả năng truy cập) – Kushal

0

Không có API nào để truy cập bất kỳ thông báo nào. Ít nhất nó sẽ là lỗ hổng trong an ninh. Chỉ có điều bạn có thể bắt được một số sự kiện, điều đó gây ra các thông báo (như sms).

0

A Notification được tăng lên bằng cách gửi Intent.

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

Các NotificationReceiver đánh bắt các Intent và bật lên một Notification.

Hoàn toàn có thể bắt được cùng một Intent trong một trong các ứng dụng của bạn bằng cách sử dụng BroadCastReceiver và lọc theo số Intent mà bạn muốn.

+0

Không có ý định "thay đổi trạng thái thanh thông báo" hoặc "thông báo đã kích hoạt". – Kishore

+0

Điều đó đúng, nhưng các thông báo được kích hoạt bằng cách sử dụng Intents .. Và Intents có thể bị bắt với BroadCastReceiver. Afcourse, tất cả điều này phụ thuộc vào loại Nofication bạn muốn truy cập. – DroidBender

+0

Thực ra tôi muốn ghi lại tất cả các thông báo. Vì vậy, tôi đang tìm kiếm một phương pháp chung để nắm bắt tất cả các thông báo. – Kishore

Các vấn đề liên quan