我在浏览器中打开url的代码是
private void openBrowserUrl(String url) {
Intent i = new Intent(Intent.ACTION_VIEW);
System.out.println("============Url==================" + url);
i.setData(Uri.parse(url));
startActivity(i);
unlock(UNLOCK_TO_HOME);
}
当没有模式锁定时,以上工作正常。
但是当我尝试在模式锁定后打开浏览器时,url 值仍然为空。
我的应用程序中有自定义锁屏。当手机被锁定后,我尝试解锁手机,那时我的应用程序打开了自定义锁屏。并且我已经编写了这段代码。我得到了 url 值,它成功地传递给了浏览器。
但是,我尝试使用模式锁(android 的默认锁定系统)进行上述过程
那么流程就是
自定义锁屏-->打开url代码(获取url值)-->默认图案锁-->浏览器无url值。
在上面的流程中,当存在模式锁定时,浏览器无法获取我传递的 url。
最佳答案
此问题发生在 api > 21. KEYGUARD 中有一些变化,解锁屏幕后有某种延迟或某种使 Intent 不 react 的东西,使用标志购买它应该延迟 Intent 并使其发挥作用 这里的代码应该可以解决问题。
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("your url"));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getActivity().startActivity(i);
关于android - 锁屏后无法打开网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26141013/