天天看點

android判斷推送權限,iApp檢查與擷取推送權限

大家好我是抹茶今天給大家帶來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")

android判斷推送權限,iApp檢查與擷取推送權限

圖檔發自簡書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

}

可以發送到通知欄的效果:

android判斷推送權限,iApp檢查與擷取推送權限

圖檔發自簡書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

沒有擷取到權限後的跳轉效果:

android判斷推送權限,iApp檢查與擷取推送權限

圖檔發自簡書App