我想一重启手机就自动运行我的Flutter 应用程序的后台服务.

我实现了以下Solution个代码,但它抛出了一些错误


AndroidStudioProjects\db_app\android\app\src\main\kotlin\com\example\laravel_login\MainActivity.kt: (14, 22): Unresolved reference: Uri

AndroidStudioProjects\db_app\android\app\src\main\kotlin\com\example\laravel_login\MainActivity.kt: (14, 28): Unresolved reference: Uri

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugKotlin'.
> Compilation error. See log for more details

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

如果你知道任何替代方案,请帮忙. 谢谢.

MainActivity.kt

package com.example.laravel_login
import android.os.Bundle
import android.provider.Settings
import io.flutter.embedding.android.FlutterActivity
import android.content.BroadcastReceiver
import android.content.Context;
import android.content.Intent;
class MainActivity: FlutterActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        var REQUEST_OVERLAY_PERMISSIONS = 100
        if (!Settings.canDrawOverlays(getApplicationContext())) {
            val myIntent = Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION)
            val uri: Uri = Uri.fromParts("com.example.laravel_login.BootReceiver", getPackageName(), null)
            myIntent.setData(uri)
            startActivityForResult(myIntent, REQUEST_OVERLAY_PERMISSIONS)
            return
        }
    }
}

class BootReceiver: BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent) {
        if (intent.action == Intent.ACTION_BOOT_COMPLETED) {
            val i = Intent(context, MainActivity::class.java)
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
            context.startActivity(i)
        }
    }
}

AndroidManifest.xml

<!--       app auto restart on phone restart -->
<receiver
            android:enabled="true"
            android:exported="true"
            android:name="com.example.laravel_login.BootReceiver"
            android:permission="android.permission.RECEIVE_BOOT_COMPLETED">

            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.QUICKBOOT_POWERON" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

  </receiver>
<!-- app auto restart on phone restart -->

推荐答案

把这个加到MainActivity.kt的进口量上,你就可以开始行动了.

import android.net.Uri

Flutter相关问答推荐

Flutter:如何从Bottom Navigator中删除此内容

如何使用底部导航栏修复此导航问题

如何正确处理Flutter 翼中使用火基时发生的碰撞?

如何从DART中的事件列表中获取即将到来的日期

来自FirebaseAuth的错误DisplayName和邮箱在Flutter应用程序中给出错误

升级到Ffltter 3.16后,应用程序栏、背景 colored颜色 、按钮大小和间距都会发生变化

抖动问题:检测到0个或2个或更多具有相同值的[DropdownMenuItem]

在允许屏幕 Select 和点击的同时保持通用对话框显示

在我使用 flutter_riverpod stateprovider 重新保存代码之前,UI 主题状态不会更新

使用 Play Integrity API 时,Firebase 电话身份验证问题缺少客户端标识符错误

我怎样才能消除我的 Column 子元素之间的差距?

在 flutter 中获取最喜欢的文档

从子集合sem中获取参考学年&&课程名称的值

底部工作表顶部的一块 Flutter

如何限制用户每 24 小时执行的操作数?

Flutter RawMaterialButton 常量相对大小

在 Flutter 中单击时切换按钮 colored颜色 没有改变

如何将图像网络装箱到具有边界半径的容器中

在自动完成中 Select 值后保持键盘焦点

在 Flutter 中更新对象实例属性的最佳实践是什么?该实例嵌套在提供程序类的映射中,如下所示