java.lang.Exception:在类android.app.Activity上解析方法startActivityForResult失败
Nativescript(4.1)angular项目(tns create app--ng)启动活动。但是我犯了一个错误java.lang.Exception:在类android.app.Activity上解析方法startActivityForResult失败,android,nativescript,Android,Nativescript,Nativescript(4.1)angular项目(tns create app--ng)启动活动。但是我犯了一个错误 JS: ERROR Error: java.lang.Exception: Failed resolving method startActivityForResult on class android.app.Activity JS: com.tns.Runtime.resolveMethodOverload(Runtime.java:1062) JS: c
JS: ERROR Error: java.lang.Exception: Failed resolving method startActivityForResult on class android.app.Activity
JS: com.tns.Runtime.resolveMethodOverload(Runtime.java:1062)
JS: com.tns.Runtime.callJSMethodNative(Native Method)
JS: com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1101)
JS: com.tns.Runtime.callJSMethodImpl(Runtime.java:983)
JS: com.tns.Runtime.callJSMethod(Runtime.java:970)
JS: com.tns.Runtime.callJSMethod(Runtime.java:954)
JS: com.tns.Runtime.callJSMethod(Runtime.java:946)
ngAfterViewInit() {
const intent = new android.content.Intent((android.provider.Settings as any).ACTION_MANAGE_OVERLAY_PERMISSION,
android.net.Uri.parse('package:' + application.android.context.getPackageName()));
const activity = application.android.foregroundActivity || application.android.startActivity;
activity.startActivityForResult(intent);
}
我找到了解决这个错误的办法
ngAfterViewInit() {
const application = require("application");
const RESULT_CODE_OVERLAY_PERMISSION = 1234;
const intent = new android.content.Intent((android.provider.Settings as any).ACTION_MANAGE_OVERLAY_PERMISSION,
android.net.Uri.parse('package:' + application.android.context.getPackageName()));
const activity = application.android.foregroundActivity || application.android.startActivity;
application.android.on(application.AndroidApplication.activityResultEvent, (args) => console.log(args));
activity.startActivityForResult(intent, RESULT_CODE_OVERLAY_PERMISSION);
}