Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Kotlin-如何在设备锁定时显示LocationSettingsRequest对话框_Android_Kotlin_Lockscreen - Fatal编程技术网

Android Kotlin-如何在设备锁定时显示LocationSettingsRequest对话框

Android Kotlin-如何在设备锁定时显示LocationSettingsRequest对话框,android,kotlin,lockscreen,Android,Kotlin,Lockscreen,我有一个由事件触发的活动,我使用此代码,以便在设备锁定时显示它 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { setShowWhenLocked(true) setTurnScreenOn(true) val pm=getSystemService(Context.POWER_SERVICE)as PowerManager

我有一个由事件触发的活动,我使用此代码,以便在设备锁定时显示它

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
            setShowWhenLocked(true)
            setTurnScreenOn(true)
            val pm=getSystemService(Context.POWER_SERVICE)as PowerManager
            pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"FireApp:test2").acquire(1000000)
            val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
            keyguardManager.requestDismissKeyguard(this, null)
        }else{

            this.window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD or
                    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON or
                    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED)
        }
在我想使用以下代码显示LocationSettingsRequest对话框之前,锁定我的设备可以正常工作:

fun displayLocationSettingsRequest(context: Context) {
        val googleApiClient = GoogleApiClient.Builder(context)
                .addApi(LocationServices.API).build()
        googleApiClient.connect()

        val locationRequest = LocationRequest.create()
        locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
        locationRequest.setInterval(5000)
        locationRequest.setFastestInterval(2000)

        val builder = LocationSettingsRequest.Builder().addLocationRequest(locationRequest)
        builder.setAlwaysShow(true)


        val result = LocationServices.SettingsApi.checkLocationSettings(googleApiClient, builder.build())
        result.setResultCallback (object: ResultCallback<LocationSettingsResult> {
            override fun onResult(result: LocationSettingsResult) {
                val status = result.status
                if (status.statusCode == LocationSettingsStatusCodes.SUCCESS) {
                    Log.d("Martin", "Lokacija je vključena!")
                }
                if (status.statusCode == LocationSettingsStatusCodes.RESOLUTION_REQUIRED) {
                    try {
                        status.startResolutionForResult(this@medAlarmom2, 0x1)
                    } catch (e: IntentSender.SendIntentException) {
                        Log.d("Martin", "PendingIntent unable to execute request.")
                    }

                }
                if (status.statusCode == LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE) Log.d("Martin", "Location settings are inadequate, and cannot be fixed here. Dialog "+"not created.")
            }
        })
    }
fun displayLocationSettingsRequest(上下文:上下文){
val googleApiClient=googleApiClient.Builder(上下文)
.addApi(LocationServices.API).build()
GoogleAppClient.connect()
val locationRequest=locationRequest.create()
locationRequest.setPriority(locationRequest.PRIORITY\u高精度)
locationRequest.setInterval(5000)
locationRequest.SetFastTestInterval(2000)
val builder=LocationSettingsRequest.builder().addLocationRequest(locationRequest)
builder.setAlwaysShow(true)
val result=LocationServices.SettingsApi.checkLocationSettings(GoogleAppClient,builder.build())
result.setResultCallback(对象:ResultCallback{
覆盖结果(结果:LocationSettingsResult){
val状态=结果状态
if(status.statusCode==LocationSettingsStatusCodes.SUCCESS){
日志d(“Martin”,“Lokacija je vključena!”)
}
if(status.statusCode==位置设置StatusCodes.RESOLUTION\U必需){
试一试{
status.StartResult解决方案(this@medAlarmom2,0x1)
}catch(e:IntentSender.SendIntentException){
Log.d(“Martin”,“PendingEvent无法执行请求”)
}
}
如果(status.statusCode==LocationSettingsStatusCodes.SETTINGS\u CHANGE\u UNAVAILABLE)Log.d(“Martin”,“位置设置不充分,无法在此处修复。未创建对话框“+”)
}
})
}
我找不到一个好的解决方案,能够在不解锁设备的情况下显示此对话框。有人能解决这个问题吗

非常感谢! 马丁