I need to check if the Android Market is installed like this
/*
* Test for existence of Android Market
*/
boolean androidMarketExists = false;
try{
ApplicationInfo info = getPackageManager()
.getApplicationInfo("com.google.process.gapps", 0 );
//application exists
androidMarketExists = true;
} catch( PackageManager.NameNotFoundException e ){
//application doesn't exist
androidMarketExists = false;
}
But I don't know if com.google.process.gapps is the package that has android market or not.
It's com.android.vending (on my Galaxy S), and here's the better way to find out... by querying for who handles market:// URIs.
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://search?q=foo"));
PackageManager pm = getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(intent, 0);
If the list has at least one entry, the Market's there.
Your code is right just needs minor changes
Check out code modified below:
boolean androidMarketExists = false;
try{
ApplicationInfo info = getPackageManager().getApplicationInfo("com.android.vending", 0 );
if(info.packageName.equals("com.android.vending"))
androidMarketExists = true;
else
androidMarketExists = false;
} catch(PackageManager.NameNotFoundException e ){
//application doesn't exist
androidMarketExists = false;
}
if(!androidMarketExists){
Log.d(LOG_TAG, "No Android Market");
finish();
}
else{
Log.d(LOG_TAG, "Android Market Installed");
}
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