我无法使用API 26更新该应用。 当我尝试运行项目
时出现以下错误错误:
“ ServerRunningNotification.java”:错误:找不到符号方法 setLatestEventInfo(Context,CharSequence,CharSequence,PendingIntent)
这是我的代码段,其中有错误
代码:
public class ServerRunningNotification extends BroadcastReceiver {
private static final String TAG = ServerRunningNotification.class.getSimpleName();
private final int NOTIFICATIONID = 7890;
public String iptext;
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "onReceive broadcast: " + intent.getAction());
if (intent.getAction().equals(FtpServerService.ACTION_STARTED)) {
setupNotification(context);
} else if (intent.getAction().equals(FtpServerService.ACTION_STOPPED)) {
clearNotification(context);
}
}
@SuppressWarnings("deprecation")
private void setupNotification(Context context) {
Log.d(TAG, "Setting up the notification");
// Get NotificationManager reference
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager nm = (NotificationManager) context.getSystemService(ns);
// get ip address
InetAddress address = FtpServerService.getLocalInetAddress();
if (address == null) {
Log.w(TAG, "Unable to retreive the local ip address");
return;
}
iptext = "ftp://" + address.getHostAddress() + ":"
+ Settings.getPortNumber() + "/";
// Instantiate a Notification
int icon = R.drawable.ftp_icon;
CharSequence tickerText = String.format(
context.getString(R.string.notif_server_starting), iptext);
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText, when);
// Define Notification's message and Intent
CharSequence contentTitle = context.getString(R.string.notif_title);
CharSequence contentText = String.format(context.getString(R.string.notif_text),
iptext);
Intent notificationIntent = new Intent(context, FTP_Start_Stop.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
notificationIntent, 0);
notification
.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
notification.flags |= Notification.FLAG_ONGOING_EVENT;
// Pass Notification to NotificationManager
nm.notify(NOTIFICATIONID, notification);
Log.d(TAG, "Notication setup done");
}
private void clearNotification(Context context) {
Log.d(TAG, "Clearing the notifications");
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager nm = (NotificationManager) context.getSystemService(ns);
nm.cancelAll();
Log.d(TAG, "Cleared notification");
}
}
答案 0 :(得分:1)
根据here,setLatestEventInfo(Context,CharSequence,CharSequence,PendingIntent)
方法已在Android M(API 23)中删除。因此它不适用于23以上的API版本。