我有一个应用程序,我想在其中将用户重定向到 Play 商店中的应用程序链接,该应用程序工作正常,但如果设备中未安装 Play 商店,那么我必须将用户重定向到浏览器中的应用程序链接。我如何存档这个问题。
代码:-
private void startNewActivity(Context context, String packageName) {
Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);
if (intent == null) {
// Bring user to the market or let them choose an app?
intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=" + packageName));
Log.e(TAG,"Package name::"+packageName);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
并在onclick中调用此方法
startNewActivity(mContext, "market://details?id=com.example.something"));
最佳答案
private void startNewActivity(String packageName) {
try {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=packageName"));
startActivity(intent);
} catch (Exception e) { //google play app is not installed
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=packageName"));
startActivity(intent);
}
}
或者你可以这样试试。
下面提到检查应用程序是否安装。
private boolean appInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
boolean app_installed;
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
app_installed = true;
}
catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed;
}
现在检查并使用这样的替代方案。
boolean installed = appInstalledOrNot("Your_Package_Name");
if(installed) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=packageName"));
startActivity(intent);
System.out.println("App is already installed on your phone");
} else {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=packageName"));
startActivity(intent);
System.out.println("App is not currently installed on your phone");
}
关于android - 如果未在设备中安装,如何在浏览器中启动 google play 商店?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40500645/