我有一个在api级别22中构建的应用程序,现在我不得不将其更新为api级别26,并且最初构建的持久性通知不再起作用。我已经尝试了来自stackoverflow的多个代码,但对我来说没有成功。

我的代码:

    void setUpAsForeground(String text) {
        Intent mainActivity = new Intent(getApplicationContext(), MainActivity.class);
        PendingIntent openMainActivity = PendingIntent.getActivity(getApplicationContext(), 0,
                mainActivity, 0);
        // Build the notification object.
        mNotificationBuilder = new Notification.Builder(getApplicationContext())
                .setSmallIcon(R.drawable.radio_icon_128px)
                .setTicker(text)
                .setWhen(0)
//                .setWhen(System.currentTimeMillis())
                .setContentTitle(getResources().getString(R.string.app_name) + text)
                .setContentText(mMusicProvider.getCurrentSongTitle())
                .setContentIntent(openMainActivity)
                .setOngoing(true);
        startForeground(NOTIFICATION_ID, mNotificationBuilder.build());
//        broadcastAction(MainActivity.ACTION_UPDATE_TITLE);
    }


任何建议将不胜感激。

最佳答案

从API 26开始,您必须为您的应用提供一个通知通道,然后才能显示任何通知。对于Android 7及更低版本,需要设置优先级。有关更多信息和示例,请参见此文档:https://developer.android.com/training/notify-user/build-notification

09-10 06:07
查看更多