In this case, you need to launch the application directly using
its package name.
The following appIsInstalled()
method checks if a package is already installed on the target device:
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Toast;
…
…
private boolean appIsInstalled(String packageName) {
PackageManager pm =
getPackageManager();
boolean appInstalled =
false;
try {
pm.getPackageInfo(packageName,
PackageManager.GET_ACTIVITIES);
appInstalled = true;
} catch
(PackageManager.NameNotFoundException e) {
appInstalled = false;
}
return
appInstalled;
}
To launch a package directly using its package name, you can use
the getLaunchIntentForPackage() of
the PackageManager class to create
an intent for the app:
String packageName =
"net.learn2develop.barcodescanner";
if (appIsInstalled(packageName)) {
Intent i =
getPackageManager().
getLaunchIntentForPackage(packageName);
startActivity(i);
} else {
Toast.makeText(this,
"App
not installed on the device.",
Toast.LENGTH_LONG).show();
}
Then, you launch the intent as usual using the startActivity() method.
No comments:
Post a Comment