Автоматический перезапуск или режим выключения/включения на моем мобильном устройстве, автоматическое открытие приложения в React native

как-мне-запустить-мое-приложение-когда-телефон-запускается-на-андроиде

Основываясь на приведенной выше ссылке, я изменил свой собственный код в собственном проекте React, как указано ниже, но я не получаю никакого результата..!!

Androidmanifest.xml ``

<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
  package = "com.freshot.co.ownerapp">

    <uses-permission android:name = "android.permission.INTERNET" />
    <uses-permission android:name = "android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name = "android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name = "android.permission.SYSTEM_ALERT_WINDOW"/>

  
    <application
      android:name = ".MainApplication"
      android:label = "@string/app_name"
      android:icon = "@mipmap/ic_launcher"
      android:roundIcon = "@mipmap/ic_launcher_round"
      android:allowBackup = "false"
      android:theme = "@style/AppTheme">
      <meta-data  
        android:name = "com.google.android.geo.API_KEY"  
        android:value = "AIzaSyA88RySEu8iI-oY15iKKLE25WKVjKefKjk"/>
      <activity
        android:name = ".MainActivity"
        android:label = "@string/app_name"
        android:configChanges = "keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"
        android:launchMode = "singleTask"
        android:windowSoftInputMode = "adjustResize"
        android:exported = "true">
        <intent-filter>
            <action android:name = "android.intent.action.MAIN" />
            <category android:name = "android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <receiver
        android:name = "com.freshot.co.ownerapp.BootReciever"
        android:enabled = "true"
        android:exported = "true"
        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>
    </application>
</manifest>

``

BootReciever.java

`

package com.freshot.co.ownerapp;

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

public class BootReciever extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if (intent.getAction() != null) {
           if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
                Intent i = new Intent(context, MainActivity.class);
                i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(i);
            }
    }
  }
}

`

Мое решение должно быть следующим: когда мобильный телефон/вкладка перезагружается или выключается/включается, мое родное приложение React должно открываться автоматически

0
0
178
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не работает на современных андроид-ресиверах - это фоновые задачи. Фоновые задачи не могут запускать активные действия. Этот метод работает для вас, чтобы выполнить некоторую быструю фоновую обработку или настроить некоторые сигналы тревоги на потом, но он не позволит вам отображать активность.

Вы используете приложение в режиме киоска, где хотите захватить домашний экран и заблокировать пользователя в своем приложении? Если это так, вы должны написать приложение для запуска. Если нет, то такое поведение крайне не рекомендуется, вплоть до того, что оно почти является активным вредоносным ПО — всплывающее окно приложения при загрузке не удобно для пользователя, оно является спамом и раздражает.

Чтобы сделать действие главным экраном для киоска, используйте

   <intent-filter>
        <action android:name = "android.intent.action.MAIN" />

        <category android:name = "android.intent.category.LAUNCHER" />

        <category android:name = "android.intent.category.HOME" />

        <category android:name = "android.intent.category.DEFAULT" />

    </intent-filter>

в своем манифесте, а затем установите приложение в качестве средства запуска по умолчанию после установки. После этого оно всегда будет запускать ваше приложение при загрузке и когда пользователь нажимает кнопку «Домой».

это похоже на приложение в режиме киоска, когда приложение открывается, оно блокирует экраны, но после перезагрузки или перезапуска оно не открывается автоматически

GS James 25.11.2022 05:27

@GSJames Проверьте мою правку. В нем показано, как объявить свою активность приложением запуска, чтобы оно могло быть домашним экраном вашего устройства.

Gabe Sechan 25.11.2022 08:34

Большое спасибо, сэр...! Приведенный выше код добавляется в Androidmanifest после того, как приложение Reboot запрашивает запуск, после его выбора всегда открывается автоматически

GS James 25.11.2022 13:11

Другие вопросы по теме

Похожие вопросы