【问题标题】:error: cannot find symbol method setLatestEventInfo(Context,CharSequence,CharSequence,PendingIntent)错误:找不到符号方法 setLatestEventInfo(Context,CharSequence,CharSequence,PendingIntent)
【发布时间】:2018-10-09 03:40:30
【问题描述】:

我无法使用 API 26 更新应用程序。 当我尝试运行项目时出现以下错误

错误:

“ServerRunningNotification.java”:错误:找不到符号方法 setLatestEventInfo(Context,CharSequence,CharSequence,PendingIntent)

这是我的代码 sn-p 有错误

代码:

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");
    }
}

【问题讨论】:

    标签: java android


    【解决方案1】:

    根据heresetLatestEventInfo(Context,CharSequence,CharSequence,PendingIntent) 方法已在 Android M (API 23) 中删除。所以它不适用于 23 以上的 API 版本。

    【讨论】:

    • 如何替换这一行?
    • // 定义通知的消息和意图
    • @AdBahia 在这里查看答案:stackoverflow.com/questions/34012544/…
    • 感谢您的回答。我对java知之甚少,我还不能解决这个问题。参考文献不同。我无法替换以下行://定义通知的消息和意图
    • @AdBahia 我看不出区别。请澄清。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    相关资源
    最近更新 更多