Cordova状态栏通知插件错误

时间:2012-07-20 14:37:14

标签: android eclipse cordova phonegap-plugins

我正在尝试将Cordova的状态栏通知插件添加到我的Android应用程序中,但是我的代码出错了。

这是有问题的代码:

  Notification noti = new Notification.Builder(context)
    .setContentTitle(contentTitle)
    .setContentText(contentText)
    .setSmallIcon(icon)
    .build();

错误出现在.build()上,Eclipse告诉我:

  

“方法build()未定义Notification.Builder类型”

2 个答案:

答案 0 :(得分:13)

我遇到了同样的问题。它似乎与sdk版本不匹配,现在折旧了。

getNotification()是自API 11以来调用的方法 在API 16中添加了build()

如果你像我一样,你正在使用的版本< 16,所以请改用.getNotification()。

我现在不会担心API 16,但我敢打赌,如果我下载16并将目标设置为这样,build()将会起作用。

让我知道它是否适合你。

答案 1 :(得分:1)

对我来说.getNotification()没有解决问题,因为我需要一个API 10及更高版本的解决方案。

我找到了解决问题的方法。如果其他人有同样的问题,我建议这样做:

1)查看StatusBarNotification(click

的说明

2)修改StatusBarNotification.java

  • 添加

      

    私人通知通知;

         

    private PendingIntent contentIntent;

  •   
  在StatusBarNotification类的底部,例如在NotificationManager声明

之前
  • 修改showNotification方法

评论或删除:

import android.app.Notification.Builder;

Notification noti = new Notification.Builder(context) .setContentTitle(contentTitle) .setContentText(contentText) .setSmallIcon(icon) .build();

代替此部分,粘贴:

noti = new Notification(android.R.drawable.btn_star_big_on, contentText, System.currentTimeMillis() );
noti.flags = Notification.FLAG_AUTO_CANCEL;


Intent notificationIntent = new Intent(context, !yourMainActivityClass!.class);
notificationIntent.setAction(Intent.ACTION_MAIN);
notificationIntent = notificationIntent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);

noti.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
  • 改变!yourMainActivityClass!到你的班级
  • 在index.html中添加调用方法对于测试,您可以使用

    创建JQM按钮
      

    onclick ='window.plugins.statusBarNotification.notify(“把你的头衔   在这里“,”把你的信息放在这里“);返回false;'

我知道这个解决方案是使用折旧的方法,但我花了很长时间才能使它工作,我没有看到API的另一个解决方案。如果有人有更好的想法,请与我分享;)