Android Kotlin:必需的上下文,但找到字符串

Android Kotlin:必需的上下文,但找到字符串,android,kotlin,Android,Kotlin,我正在尝试创建一个安排通知的方法。在该方法中,我初始化了一个AlarmManager,它将允许我按需接收意图。但是,我的代码中出现以下语法错误: 类型不匹配。必需:找到上下文:字符串 在以下行: var alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager 下面是我的代码: package com.example.notificationapp import android.app.AlarmManag

我正在尝试创建一个安排通知的方法。在该方法中,我初始化了一个
AlarmManager
,它将允许我按需接收意图。但是,我的代码中出现以下语法错误:

类型不匹配。必需:找到上下文:字符串

在以下行:

 var alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
下面是我的代码:

package com.example.notificationapp

import android.app.AlarmManager
import android.app.NotificationManager
import android.app.PendingIntent
import android.app.PendingIntent.getActivity
import android.content.Context
import android.content.Intent
import androidx.core.app.NotificationCompat
import androidx.core.content.ContextCompat.getSystemService
import java.security.AccessController.getContext
import java.util.*

// Channel

class Notification(context:Context, notificationManager: NotificationManager, title:String, description:String, date: Date) {
    // Attributes
    private lateinit var context:Context;
    private var title:String = ""
    private var description:String = ""
    private lateinit var date:Date;
    private lateinit var notificationManager:NotificationManager;

    // Initialization
    init {
        // Download the constructor parameters into the object's attributes
        this.context = context
        this.title = title
        this.description = description
        this.date = date
        this.notificationManager = notificationManager
    }

    // Method to set the notification at a specific time
    fun setNotificationAtTime(time:Date) {
        var notificationIntent = Intent(this.context, NotificationBroadcast::class.java)
        var pendingNotificationIntent = PendingIntent.getBroadcast(this.context,
            0, notificationIntent, 0)

        // Initialize an AlarmManager that allows us to receive intents on demand
        var alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager

        val builder = NotificationCompat.Builder(context, "com.example.notificationapp")
    }
}

这是因为您使用的是
ContextCompat.getSystemService
而不是
Context.getSystemService

这里有两个选项:

  • 使用正确的签名使用
    ContextCompat.getSystemService
  • getSystemService(上下文,AlarmManager::class.java)
  • 使用
    Context.getSystemService
    删除导入语句:
  • androidx.core.content.ContextCompat.getSystemService