Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 对于某些设备无法使用的隐式意图,是否有任何解决方案_Android_Webview - Fatal编程技术网

Android 对于某些设备无法使用的隐式意图,是否有任何解决方案

Android 对于某些设备无法使用的隐式意图,是否有任何解决方案,android,webview,Android,Webview,Android活动具有webview,如果url与upi://匹配,则意图选择器应弹出其与所有设备的工作状态,但某些设备(如带有Android 9的mi)工作不正常 if(url.startsWith(“upi://”){ 如果url以upi://开头,则检查url是否以upi://开头。如果url以upi开头,则选择器会弹出所有程序包名称以upi开头的应用程序。该选项适用于所有设备 @SuppressLint("RestrictedApi") @Override

Android活动具有webview,如果url与upi://匹配,则意图选择器应弹出其与所有设备的工作状态,但某些设备(如带有Android 9的mi)工作不正常

if(url.startsWith(“upi://”){ 如果url以upi://开头,则检查url是否以upi://开头。如果url以upi开头,则选择器会弹出所有程序包名称以upi开头的应用程序。该选项适用于所有设备

@SuppressLint("RestrictedApi")
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);


            if (url.startsWith("upi://")) {
                Toast.makeText(home.this, url, Toast.LENGTH_SHORT).show();
                webView.stopLoading();
                try {
                    Intent intent = new Intent();
                    intent.setAction(Intent.ACTION_VIEW);
                    intent.setData(Uri.parse(url));
                    Intent chooser = Intent.createChooser(intent, "Pay with...");
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                        startActivityForResult(chooser, 1, null);
                    }
                    else
                    {
                        Toast.makeText(home.this, "ELSE", Toast.LENGTH_SHORT).show();
                    }

                } catch (android.content.ActivityNotFoundException ex) {


                    String MakeShortText = "PhonePe have not been installed";

                    Toast.makeText(home.this, MakeShortText, Toast.LENGTH_SHORT).show();
                }
            }
            return true;
        }

    });





}
日志


“工作不正常”是什么意思?您的确切症状是什么?我希望您的应用程序在任何缺少支持该URL的
ACTION\u VIEW
活动的设备上崩溃。而且,由于
ACTION\u VIEW
的设计不支持
startActivityForResult()
,因此您的
onActivityResult()
回调方法(如果你有)不太可能得到任何有用的东西。我建议你切换到
startActivity()
并将其包装在
中尝试
/
catch
块来处理
活动NotFoundException
。我解释了我的问题,请在@commonware检查一下“我解释了我的问题”--如果有什么问题的话,你会让它更加混乱,因为你写了“它使用所有设备”。“它使用所有设备”与“工作不正常”不匹配。那么,你看到了什么?你的应用程序正在崩溃吗?如果是,请使用Logcat检查与崩溃相关的堆栈跟踪。
2019-10-27 18:55:15.781 17960-17960/? E/ChooserActivityInjector: getResolversForIntent [boolean, boolean, interface java.util.List]
java.lang.NoSuchMethodException: getResolversForIntent [boolean, boolean, interface java.util.List]
    at java.lang.Class.getMethod(Class.java:2068)
    at java.lang.Class.getDeclaredMethod(Class.java:2047)
    at com.android.internal.app.ChooserActivityInjector.createSortedResloveListByResolverController(ChooserActivityInjector.java:91)
    at com.android.internal.app.ChooserActivityInjector.startInterceptByMiAppStore(ChooserActivityInjector.java:66)
    at com.android.internal.app.ResolverActivity.onCreate(ResolverActivity.java:372)
    at com.android.internal.app.ChooserActivity.onCreate(ChooserActivity.java:274)
    at android.app.Activity.performCreate(Activity.java:7224)
    at android.app.Activity.performCreate(Activity.java:7213)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2926)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:201)
    at android.app.ActivityThread.main(ActivityThread.java:6810)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)