如何在 Flutter 中启动 Android 应用程序?

app*_*dev 9 android flutter

我想在 Android 设备上启动时自动启动我的应用程序。

有没有任何软件包或任何解决方案可以做到这一点?我知道如何在原生 Android 代码中做到这一点,但是在 Flutter 中如何做到呢?

Chr*_*ris 5

在你的类中创建一个新的java类android/src/main/java/<package-name>/..(与 MainActivity.java 相同的文件夹)

随意命名它,例如 BootBroadcastReceiver.java

package <your package name here>;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class BootBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
            Intent i = new Intent(context, MainActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

将此 android 权限添加到您的AndroidManifest.xml

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Run Code Online (Sandbox Code Playgroud)

将其添加到<application ... />您的对象的底部AndroidManifest.xml

<receiver android:name=".BootBroadcastReceiver" >   
    <intent-filter>   
        <action android:name="android.intent.action.BOOT_COMPLETED" />  
        <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 
    </intent-filter>   
</receiver> 
Run Code Online (Sandbox Code Playgroud)

的名称<receiver .. />应该与类的名称匹配。复制上面就行了。

我发现某些设备(例如小米)具有防止“自动启动”的安全功能。可以在“安全”应用程序中为应用程序启用/禁用此功能,或者在“设置”中搜索“自动启动”,您将进入正确的部分。

我认为该应用程序需要至少打开一次才能起作用。