【问题标题】:setLatestEventInfo(...) is undefined for the type Notification未定义类型 Notification 的 setLatestEventInfo(...)
【发布时间】:2015-11-27 18:49:51
【问题描述】:

我知道“setLatestEventInfo”已被弃用。但是为了兼容 api lv 8 设备,我必须使用它,因为新的通知调用功能不兼容 api 8 设备。

我在某些项目中使用了“setLatestEventInfo”,但收到了不推荐使用的警告,但在这个新项目中,我收到“未定义类型通知”

Notification note = new   Notification(R.drawable.abc_ic_go_search_api_mtrl_alpha,
                "", System.currentTimeMillis());
        Intent intent;


            intent = new Intent(context, MainActivity.class);


        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
                | Intent.FLAG_ACTIVITY_SINGLE_TOP);

        PendingIntent pi = PendingIntent.getActivity(context, 0, intent, 0);

note.setLatestEventInfo(context, "", "", pi);

        note.flags |= Notification.FLAG_NO_CLEAR;

        ((Service) context).startForeground(1337, note);

如果我使用 Notification.Builder:

调用需要 API 级别 11(当前最低为 8):新 android.app.Notification.Builder

【问题讨论】:

    标签: android


    【解决方案1】:

    解决了项目属性从 Android api 6.0 更改为 5.1.1。

    【讨论】:

    • 我需要以 api 6 为目标。针对 6.0 修复它的正确方法是什么?
    【解决方案2】:

    让我们尝试这样实现通知:

            Intent intent = new Intent("com.example.notitfications.MYNOTIFICATION");
    
            PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 1, intent, 0);
    
            Notification.Builder builder = new Notification.Builder(MainActivity.this);
    
            builder.setAutoCancel(false);
            builder.setTicker("Ticker text");
            builder.setContentTitle("Content of Notification");               
            builder.setContentText("You have a new message");
            builder.setSmallIcon(R.drawable.ic_launcher);
            builder.setContentIntent(pendingIntent);
            builder.setOngoing(true);
            builder.setSubText("This is subtext...");   //API level 16
            builder.setNumber(100);
            builder.build();
    
            myNotication = builder.getNotification();
            manager.notify(11, myNotication);
    

    【讨论】:

    • 调用需要 API 级别 11(当前最低为 8):新的 android.app.Notification.Builder
    • 你需要将 Manifest 上这一行中的 min SdkVersion 改为 11: android:minSdkVersion="8"
    • 不,我需要在 api lv 8 设备上运行我的应用程序。我发布答案。
    • 你为什么投我的票?你不值得得到帮助
    • 我投了反对票,因为您没有阅读我的问题:“我必须使用它来与 api lv 8 设备兼容,因为新的通知调用功能与 api 8 设备不兼容”所以你回答我的问题中有多余的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 2017-09-28
    • 2012-11-08
    相关资源
    最近更新 更多