I have an android phone with multiple browsers installed and I might or might not set a browser to default.
So, my question is..
And most of us typically put up with our Android's default web browser, which is usually Google Chrome, or Samsung Internet if you have a Samsung device. But with how easy it is to switch your phone's default internet browser, you shouldn't have to put up with a less-than-perfect browser.
Change Link Opening Settings To change how links open in Android, return to the Default apps page you visited earlier. Here, tap Opening links to review these settings. At the top, you can toggle the Instant apps feature, which allows you to use some apps without actually installing them.
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
}
You have to make the following for calling the native browser
intent.setComponent(new
componentName("com.android.browser","com.android.browser.BrowserActivity"));
try something like this.
try {
Intent i = new Intent();
ComponentName comp = new ComponentName("com.google.android.browser","com.google.android.browser.BrowserActivity");
i.setComponent(comp);
i.setAction("android.intent.action.VIEW");
i.addCategory("android.intent.category.BROWSABLE");
ContentURI uri = new ContentURI(url);
i.setData(uri);
startActivityForResult(i, 2);
} catch (URISyntaxException e) {
e.printStackTrace();
}
for your second question you can use PackageManager
.
get instance of PackageManager
PackageManager packageManager = getPackageManager();
and query it for specific action, data and category of Intent
.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("URL"));
List<ResolveInfo> list = packageManager.queryIntentActivities(intent, 0);
for (ResolveInfo resolveInfo : list) {
if(resolveInfo.isDefault())
{
//default browser
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With