我正在尝试收听手机收到的所有通知,我正在使用 nativescript 和 angular2,
我尝试过的第一个解决方案:-
在安装 tns-platform-declarations 包并引用它之后
android.service['notification']['NotificationListenerService'].extend({
onNotificationPosted: (sbn) => {
console.log("got it");
console.log(sbn.getNotification().tickerText);
},
onCreate: () => {
console.log("Created");
}
});
不幸的是,发布的通知没有任何反应。
第二次尝试:-
我制作了一个java文件并将其放入
平台/android/src/main/java/com/tns/MoNotificationListener.java
package com.tns;
import android.service.notification.NotificationListenerService;
import android.service.notification.StatusBarNotification;
import android.util.Log;
import android.app.Notification;
import java.util.List;
import java.util.Set;
import java.util.Arrays;
import java.util.ArrayList;
import android.widget.RemoteViews;
import java.lang.reflect.Field;
import android.os.Parcelable;
import android.os.Parcel;
import android.text.TextUtils;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.PendingIntent;
public class MoNotificationListener extends NotificationListenerService {
static PendingIntent pickCallIntent ;
static PendingIntent rejectCallIntent ;
static PendingIntent hangCallIntent ;
@Override
public void onCreate() {
Log.d("ReactNative", "Created");
super.onCreate();
}
@Override
public void onListenerConnected() {
Log.d("ReactNative", "Got onListenerConnected");
}
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
Log.d("Native", "Got Notification");
if(sbn.getNotification().tickerText !=null) {
Log.d("Native",sbn.getNotification().tickerText.toString());
Log.d("Native",sbn.getPackageName());
}
}
}
用
adb logcat *:S 本机:V
并成功发布了通知日志
添加到 android 清单中
应用程序/App_Resources/Android/AndroidManifest.xml
<service
android:name="com.tns.WheemoNotificationListener"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"
>
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService" />
</intent-filter>
</service>
然后我试图从打字稿中扩展该类以在发布通知时获得通知。
android.service['notification']['NotificationListenerService'].extend("com.tns.notification.MoNotificationListener", {
onNotificationPosted: (sbn) => {
console.log("got it");
console.log(sbn.getNotification().tickerText);
},
onCreate: () => {
console.log("Created");
}
});
但再次没有任何反应