大家好我是抹茶今天給大家帶來iApp“iApp檢查與擷取推送權限”的教程,希望對大家有用!iApp擷取目前應用是否有推送權限
javags(APP_OPS_SERVICE,null,"android.content.Context.APP_OPS_SERVICE")
java(aom,activity,"android.app.Activity.getSystemService","String",APP_OPS_SERVICE)
java(appinfo,activity,"android.content.ContextWrapper.getApplicationInfo")
javags(uid,appinfo,"android.content.pm.ApplicationInfo.uid")
java(appcontext,activity,"android.content.ContextWrapper.getApplicationContext")
java(pkg,appcontext,"android.content.Context.getPackageName")
javags(field,null,"android.app.AppOpsManager","OP_POST_NOTIFICATION")
java(method,aom,"android.app.AppOpsManager.checkOpNoThrow","int",field,"int",uid,"String",pkg)
javags(MODE_ALLOWED,null,"android.app.AppOpsManager","MODE_ALLOWED")
圖檔發自簡書App
擷取完推送權限後我們接下來判斷是否有推送權限。判斷推送權限并發送到通知欄
f(method==MODE_ALLOWED){
java(nm,activity,"android.app.Activity.getSystemService","String","notification")
javanew(nb,"android.app.Notification$Builder","Context",activity)
java(null,nb,"android.app.Notification$Builder.setSmallIcon","int",17301543)
//設定圖示
java(null,nb,"android.app.Notification$Builder.setTicker","java.lang.CharSequence","新通知")
//提示内容
java(null,nb,"android.app.Notification$Builder.setDefaults","int",-1)
//發送推送時震動
java(null,nb,"android.app.Notification$Builder.setContentTitle","java.lang.CharSequence","标題")
//标題
java(null,nb,"android.app.Notification$Builder.setContentText","java.lang.CharSequence","内容233")
//内容
java(null,nb,"android.app.Notification$Builder.setAutoCancel","boolean",true)
java(nft,nb,"android.app.Notification$Builder.build")
java(null,nm,"android.app.NotificationManager.notify","int",1,"android.app.Notification",nft)
//推送到通知欄,并且不執行下面代碼
endcode
}
可以發送到通知欄的效果:
圖檔發自簡書App
打開擷取權限視窗
utw(null,"提示","發現程式無法推送通知欄了,想要最新資訊點選開啟權限喲!","開啟權限","取消",true,v){
javags(SDK_INT,activity,"android.os.Build$VERSION","SDK_INT")
javanew(intent,"android.content.Intent")
f(SDK_INT>=26){
java(null,intent,"android.content.Intent.setAction","String","android.settings.APP_NOTIFICATION_SETTINGS")
java(null,intent,"android.content.Intent.putExtra","String","android.provider.extra.APP_PACKAGE","String",pkg)
}else f(SDK_INT>=21){
java(null,intent,"android.content.Intent.setAction","String","android.settings.APP_NOTIFICATION_SETTINGS")
java(null,intent,"android.content.Intent.putExtra","String","app_package","String",pkg)
java(null,intent,"android.content.Intent.putExtra","String","app_uid","int",uid)
}else{
java(null,intent,"android.content.Intent.setAction","String","android.settings.APP_NOTIFICATION_SETTINGS")
java(uri,null,"android.net.Uri.fromParts","String","package","String",pkg,"String",null)
java(null,intent,"android.content.Intent.setData","android.net.Uri",uri)
}
java(null,intent,"android.content.Intent.setFlags","int",268435456)
java(null,activity,"android.app.Activity.startActivity","android.content.Intent",intent)
}else{
}
//歡迎加入二次元iApp交流群:454141930
沒有擷取到權限後的跳轉效果:
圖檔發自簡書App