这个问题是android P 禁止反射报的错,通过下面代码绕过检测
//在app初始化时调用即可
public class MyApplication extends Application {
public JoyApplication() {
}
@Override
public void onCreate() {
super.onCreate();
disableAPIDialog();
}
/**
* 反射 禁止弹窗
*/
private void disableAPIDialog(){
if (Build.VERSION.SDK_INT < 28)return;
try {
Class clazz = Class.forName("android.app.ActivityThread");
Method currentActivityThread = clazz.getDeclaredMethod("currentActivityThread");
currentActivityThread.setAccessible(true);
Object activityThread = currentActivityThread.invoke(null);
Field mHiddenApiWarningShown = clazz.getDeclaredField("mHiddenApiWarningShown");
mHiddenApiWarningShown.setAccessible(true);
mHiddenApiWarningShown.setBoolean(activityThread, true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
本文介绍了一种在Android P及以上版本中禁用反射API使用警告的方法。通过反射调用ActivityThread的mHiddenApiWarningShown字段并将其设置为true,可以避免应用因使用隐藏API而触发的警告对话框。
2万+

被折叠的 条评论
为什么被折叠?



