从Android应用程序打开本机浏览器本机、应用程序、浏览器、Android

2023-09-06 04:25:41 作者:难合衬a

我有一个Android手机安装多个浏览器,我可能会或可能不会设置浏览器为默认值。

所以,我的问题是..

从我的应用程序,如何强制只在本地的Andr​​oid浏览器打开链接? 有没有一种方法可以让我知道,如果有一个浏览器设置为默认或没有? 解决方案   

这是我的应用程序,如何强制只在原生的Andr​​oid打开链接   浏览器?

 意向意图=新的意图();
组件名补偿=新的组件名(com.google.android.browser,com.google.android.browser.BrowserActivity);
intent.setComponent(化合物);
intent.setAction(android.intent.action.VIEW);
intent.addCategory(android.intent.category.BROWSABLE);
开放的我们的uri = Uri.parse(URL);
intent.setData(URI);
尝试
{
    startActivity(意向);
 }
 赶上(例外五)
 {
   e.printStackTrace();
 }
 

  

有没有一种方法可以让我知道,如果有一个浏览器设置为默认或没有?

  PackageManager packageManager = getPackageManager();

意向意图=新的意图(Intent.ACTION_VIEW);
intent.setData(Uri.parse(URL));

名单< ResolveInfo>表= packageManager.queryIntentActivities(意向,0);

如果(则为list.size()大于0){
    对于(ResolveInfo resolveInfo:名单){
       resolveInfo.isDefault(); //将让你知道,如果应用程序设置为默认
    }

} 其他 {
    //没有可用的应用程序
}
 
怎样在浏览器中打开本机文件在哪里

I have an android phone with multiple browsers installed and I might or might not set a browser to default.

So, my question is..

From my App, How do I force open a link only in the NATIVE android browser? Is there a way I can know if there is a browser set to default or not?

解决方案

From my App, How do I force open a link only in the NATIVE android browser?

Intent intent = new Intent();
ComponentName comp = new ComponentName("com.google.android.browser","com.google.android.browser.BrowserActivity");
intent.setComponent(comp);
intent.setAction("android.intent.action.VIEW");
intent.addCategory("android.intent.category.BROWSABLE");
Uri uri = Uri.parse(url);
intent.setData(uri);
try
{
    startActivity(intent);
 }
 catch (Exception e)
 {
   e.printStackTrace();
 } 

Is there a way I can know if there is a browser set to default or not?

PackageManager packageManager = getPackageManager();

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("URL"));

List<ResolveInfo> list = packageManager.queryIntentActivities(intent, 0);

if (list.size() > 0) {
    for (ResolveInfo resolveInfo : list) {
       resolveInfo.isDefault();// will let u know if the app is set to default
    }

} else {
    //No apps available
}