Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Launching browser on Ice Cream Sandwich

Tags:

android

I have a program that I have made for Android 1.6 and up and I have been doing tests to ensure that the program works fine with the new Ice Cream Sandwich (Android 4).

Everything on the app works fine except that when a certain task has been performed by the user it is supposed to automatically launch the android browser. However for some reason it seems to load it up in the background and keeps my app shown which is not what I want it to do.

On every other version of android when I execute the code to launch the browser the browser comes to the top of the screen therefore causing my app to be in the background which is how I wanted it to work.

Below is the code that I have to launch the browser

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.setData(Uri.parse(companyURL));
startActivity(intent);

The companyURL is a variable that I am using to parse the url to the browser.

Thanks for any help you can provide.

UPDATE I have just discovered that if the browser is not currently running (i.e. not been loaded previously) when my app starts the browser it brings it to the front. However, once the browser has been previously loaded, when my app loads it up again, it loads it in the background.

like image 992
Boardy Avatar asked Nov 04 '22 08:11

Boardy


2 Answers

Please try this it is working on ICS for me.

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(companyURL));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
like image 93
Sunny Avatar answered Nov 12 '22 15:11

Sunny


Typically you don't need the CATEGORY_BROWSABLE category. Try the following instead:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(companyURL));
startActivity(intent);

In fact, the documentation seems to suggest CATEGORY_BROWSABLE is intended to be used in the opposite direction (browser to your app):

Activities that can be safely invoked from a browser must support this category. For example, if the user is viewing a web page or an e-mail and clicks on a link in the text, the Intent generated execute that link will require the BROWSABLE category, so that only activities supporting this category will be considered as possible actions.

http://developer.android.com/reference/android/content/Intent.html#CATEGORY_BROWSABLE

like image 27
ben_02 Avatar answered Nov 12 '22 15:11

ben_02