如何在通知中打开新意图时处理异常?

时间:2017-07-07 21:29:41

标签: android push-notification

我有一个通知信使,我希望用户在按下“推送通知”时可以访问Google Play商店,否则会将其重定向到网址。 所以我的代码就是这样:

Intent intent = new Intent(new Intent(Intent.ACTION_VIEW, Uri.parse("market://dev?id=" + appPackageName2)));
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this);
    notificationBuilder.setContentTitle("FCM Notification")
            .setContentText(remoteMessage.getNotification().getBody())
            .setAutoCancel(true)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentIntent(pendingIntent);
    NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(0, notificationBuilder.build());

我在上面的代码中想要这样的东西:

try {
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://dev?id=" + appPackageName2)));
} catch (android.content.ActivityNotFoundException anfe) {
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/dev?id=" + appPackageName2)));
  }

1 个答案:

答案 0 :(得分:1)

您可以使用PackageManager.resolveActivity来确定是否安装了可以处理特定意图的应用。您可以使用它来检查是否可以处理market: URI。

请确保仔细阅读相关的javadoc,因为它有一些关于隐式/显式意图的注释。