我正在关注this guide,但我重新制作了一下;
删除了第一个包含所有电子邮件和名称内容的活动。基本上,我所做的是:
带有按钮和文本视图的应用程序,当您按下按钮时,会弹出regId。到目前为止一切都那么好,但是当涉及到接收推送本身没有弹出窗口,没有唤醒锁或任何东西,只是在“通知中心”中的一个简单的行(不知道它在android上调用了什么)。继承人代码:
private static void generateNotification(Context context, String message)
{
int icon = R.drawable.ic_launcher;
long when = System.currentTimeMillis();
NotificationManager notificationManager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(icon, message, when);
String title = context.getString(R.string.app_name);
Intent notificationIntent = new Intent(context, MainActivity.class);
// set intent so it does not start a new activity
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent =
PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, title, message, intent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
错误:
通知通知=新通知(图标,消息,何时);
不推荐使用构造函数Notification(int,charSequence,long)
notification.setLatestEventInfo(context, title, message, intent);
The method setLatestEventInfo(Context, CharSequence, CharSequence, PendingIntent) from the type Notification is deprecated
(logCat从错误中清除)
当我打开声明时,它说“JAR文件没有源附件” 我试图添加源和googleing。但无论我做什么都说
the source attachment does not contain the source for the file Notification.class
我认为我在推送中获取消息的问题是因为这个原因。关于如何修复它的任何想法?
PS。我对这一切都不熟悉,如果您需要更多代码,请告诉我并告诉我这里是否有错误的轨道!:)
答案 0 :(得分:2)
这与你的警告无关。警告只是说,你正在使用的方法自API级别11以来已被弃用。对于较新的API,你可以(但你不必,只是推荐)使用Notification.Builder:
Notification noti = new Notification.Builder(mContext)
.setContentTitle("New mail from " + sender.toString())
.setContentText(subject)
.setSmallIcon(R.drawable.new_mail)
.setLargeIcon(aBitmap)
.build();
编辑: 检查当前的API:
int currentVersion = android.os.Build.VERSION.SDK_INT;
int honeycombVersion = android.os.Build.VERSION_CODES.HONEYCOMB;
if (currentVersion >= honeycombVersion ){
// Use Notification.Builder
} else{
// Use Notification(int, charSequence, long)
}
EDIT2: 如果使用支持库,则可以在较低的API上使用Notification.Builder。