Активность Android с веб-просмотром. Если URL-адрес совпадает с upi: //, то средство выбора намерений должно всплыть, чтобы оно работало со всеми устройствами, но некоторые устройства, такие как mi с android 9, не работают должным образом
if (url.startsWith ("upi: //")) {это, если проверка URL начинается с upi: // или нет, если он начинается с 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;
}
});
}
logs
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)