Android Notification Intent根据条件调用

时间:2016-02-25 06:57:58

标签: android android-intent notifications

我的应用添加了一个通知,点击该通知时,应将用户重定向到Google Play商店。通知基本上是指导用户从谷歌商店下载应用程序。但是有一个问题;如果未安装应用程序,通知应重定向用户,即:单击通知时,检查是否安装了应用程序;如果没有,请将用户带到Google Play商店。我如何实现这一目标?

我应该添加一个虚拟活动来实现这个目标吗?

3 个答案:

答案 0 :(得分:0)

如果您没有在为通知指定的待定意图中指定任何活动类,请在该活动类中添加一个活动类,检查是否使用Google Play商店应用网址中指定的包名安装了应用

  • 如果安装,请保持您的活动开放,如果您希望或完成。
  • 如果未安装,请在Playstore应用程序中打开网址后完成您的活动。

另一种方法是使用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)));
}