5***@qq.com
5***@qq.com
  • 发布:2019-01-11 08:53
  • 更新:2021-09-29 09:41
  • 阅读:3570

监听状态栏通知代码,android

分类:Native.js
new Vue({  
		el: '#app',  
		data(){  
			return{  
				auth: false,  
				listening: false,  
				main:'',  
				msg: {},  
				callBackUrl:''  

			}  
		},  
		created() {  
			// 初始化  
			this.init()  
		},  
		methods: {  
			init(){  
				var that = this  
				document.addEventListener('plusready', function(){  
					//  导入android类对象  
					var Intent = plus.android.importClass("android.content.Intent");  
					var context = plus.android.importClass("android.content.Context");//获取上下文  
					var ComponentName = plus.android.importClass("android.content.ComponentName");  
					var PackageManager = plus.android.importClass("android.content.pm.PackageManager");  
					var NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat");  
					var IntentFilter = plus.android.importClass('android.content.IntentFilter'); //引入过滤器  
					var Intent = plus.android.importClass('android.content.Intent');  
					var ActivityManager = plus.android.importClass("android.app.ActivityManager");  
					plus.android.importClass("java.util.List");  
					plus.android.importClass("java.util.Set");  
					// 获取主Activity对象的实例  
					that.main = plus.android.runtimeMainActivity();  
					var filter = new IntentFilter();  
					var intent = new Intent();  
					//启动短信监听  
					intent.setClassName(that.main, "com.cnupai.listen.server.WeChatNotificationListenerService");  
					that.main.startService(intent);	  

					//检测通知权限是否打开  
					function isNotificationListenerServiceEnabled(){  
						var packageNames = NotificationManagerCompat.getEnabledListenerPackages(that.main);  
						if (packageNames.contains(that.main.getPackageName())) {  
							console.log(1);  
							that.auth = true;  
						}else{  
							console.log(0);  
							that.auth = false;  
							var Intent = plus.android.importClass('android.content.Intent');  
							that.main.startActivity(new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"));  
						}  
					};  
					//重新绑定 reBind  
					var thisComponent = new ComponentName(that.main, "com.cnupai.listen.server.WeChatNotificationListenerService" )  
					var pm = that.main.getPackageManager();  
					pm.setComponentEnabledSetting(thisComponent, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);  
    				pm.setComponentEnabledSetting(thisComponent, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);  

					var receiver = plus.android.implements("io.dcloud.feature.internal.reflect.BroadcastReceiver",{  
						onReceive:function(context,intent){  
							plus.android.importClass(intent);  
							//console.log(intent.getExtra("notificationInfo"));  
							that.msg = JSON.parse(intent.getExtra("notificationInfo"));  
							axios.post(that.callBackUrl, that.msg).then(res=>{  
								console.log(res);  
							}).catch(e=>{  
								console.log(e);  
							});  
							//that.msgList =  [JSON.parse(intent.getExtra("notificationInfo"))].concat(that.msgList);  
						}  
					});	  
					filter.addAction('location.reportsucc') //监听扫码广播  
					that.main.registerReceiver(receiver, filter); //注册监听        
					//检测是否在运行  
					function isServiceRunning(){  
						var activityManager=that.main.getSystemService(context.ACTIVITY_SERVICE);  
						that.listening = plus.android.invoke('com.cnupai.listen.server.Util', 'isServiceRunning', activityManager, 'com.cnupai.listen.server.WeChatNotificationListenerService');  
						if(that.listening){  
							console.log('监听中');  
						}else{  
							console.log('未监听,重新绑定');  
							//that.main.startActivity(new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"));  
							intent.setClassName(that.main, "com.cnupai.listen.server.WeChatNotificationListenerService");  
							/** 退出Activity是,停止服务 */  
							//main.stopService(intent);  
							that.main.startService(intent);	  
						}  
					};  
					setInterval(isServiceRunning, 3000);  
					setInterval(isNotificationListenerServiceEnabled, 3000);  
				});  
			},  
			openAuth(){  
				var Intent = plus.android.importClass('android.content.Intent');  
				this.main.startActivity(new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"));  
			}  
		}  
	})  
	  
0 关注 分享

要回复文章请先登录注册

9***@qq.com

9***@qq.com

回复 2***@qq.com :
使用AndroidX的包,androidx.core.app.NotificationManagerCompat
2021-09-29 09:41
2***@qq.com

2***@qq.com

plus.android.importClass("android.support.v4.app.NotificationManagerCompat") 为空
2021-09-29 09:39
Sean_2020

Sean_2020

this.main.startActivity 这个方法怎么写?
2020-12-03 13:32
小雄Milo

小雄Milo

没啥用啊
2020-10-10 15:58
狗二万

狗二万

mark
2020-05-08 12:38
1***@qq.com

1***@qq.com

mark
2019-10-03 12:55
5***@qq.com

5***@qq.com (作者)

体验链接,http://212.64.83.121:89/upload/监听状态栏,需要的联系584425439.apk
2019-01-11 09:22
5***@qq.com

5***@qq.com (作者)

定制app请找我,584425439@qq.com
2019-01-11 08:57