Как программно открыть приложение "Amazon" в playstore?
Я пытаюсь открыть приложение Amazon программным способом, и если оно не найдено в телефоне, пользователю предлагается установить его из Play Store, но проблема в том, что когда я пытаюсь открыть его в PlayStore, он показывает Item not found
ошибка.
Вот мой код:
public void openApp(final String packageName, final String appName) {
Intent intent = getBaseContext().getPackageManager().getLaunchIntentForPackage(packageName);
if (intent != null) {
startActivity(intent);
} else {
AlertDialog.Builder builder;
builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage(appName + " not found. Would you like to install " + appName + " from play store?")
.setPositiveButton("YES", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
try {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + packageName)));
} catch (android.content.ActivityNotFoundException anfe) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + packageName)));
}
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
})
.show();
}
}
где packageName
является in.amazon.mShop.android.shopping
а также appName
является Amazon
,
Я получил имя пакета по ссылке приложения PlayStore, т. Е. https://play.google.com/store/apps/details?id=in.amazon.mShop.android.shopping&hl=en
Что здесь не так, и как я могу успешно открыть приложение Amazon на PlayStore, если не найден в устройстве?
1 ответ
private boolean appInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
return true;
} catch (PackageManager.NameNotFoundException e) {
}
return false;
}
используйте этот метод, чтобы найти приложение установлено или нет, а затем
логическое isAppInstalled = appInstalledOrNot("com.check.application");
if(isAppInstalled) {
//This intent will help you to launch if the package is already installed
Intent LaunchIntent = getPackageManager()
.getLaunchIntentForPackage("com.check.application");
startActivity(LaunchIntent);
Log.i("Application is already installed.");
} else {
// Do whatever we want to do if application not installed
// For example, Redirect to play store
Log.i("Application is not currently installed.");
}