我的应用添加了一个通知,点击该通知时,应将用户重定向到Google Play商店。通知基本上是指导用户从谷歌商店下载应用程序。但是有一个问题;如果未安装应用程序,通知应重定向用户,即:单击通知时,检查是否安装了应用程序;如果没有,请将用户带到Google Play商店。我如何实现这一目标?
我应该添加一个虚拟活动来实现这个目标吗?
答案 0 :(得分:0)
如果您没有在为通知指定的待定意图中指定任何活动类,请在该活动类中添加一个活动类,检查是否使用Google Play商店应用网址中指定的包名安装了应用
另一种方法是使用PendingIntent.getBroadcast使用自定义BroadcastReceiver处理此事。与在您的活动中实现的检查一样,您可以在BroadcastReceiver类中实现它并同样处理该操作。
答案 1 :(得分:0)
尝试一次,检查您的包裹名称
boolean check_app_install = check_appInstalled("com.Example.package");
if(check_app_install) {
//This intent will help you to launch if the package is already installed
Intent LaunchIntent = getPackageManager()
.getLaunchIntentForPackage("com.Example.package");
startActivity(LaunchIntent);
System.out.println("App is already installed on phone");
} else {
System.out.println("App is not installed on phone");
}
private boolean check_appInstalled(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;
}
答案 2 :(得分:0)
是的,你应该添加虚拟活动。
在该活动中,在onCreate
中添加此代码以处理Android手机中可用的应用程序:
PackageManager pm = getPackageManager();
String packageName = "INSERT PACKAGE NAME OF APP";
Intent launchIntent = pm.getLaunchIntentForPackage(packageName);
if(launchIntent != null){
startActivity(launchIntent);
}
else{
String googlePlayStoreLink = "INSERT URL OF PLAYSTORE LINK";
startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse(googlePlayStoreLink)));
}