Auto start application after boot completed in Android
You can use the shared preference to store a Boolean value for isAutoStartEnabled
, and check this value in the BroadcastReciver, fire an intent only if it's true.
In your case, the problem is not whether you receive the broadcast but who receives the broadcast. Best of luck..
I hope it helps..
Need to start app immediately after the boot completed
This can increase you priority but still there would be some delay. Since android first load its OS and the all the other activity starts.
<receiver
android:name=".AutoStart"
android:enabled="true"
android:exported="true"
<intent-filter android:priority="1000">
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
How can I start android application on device boot?
After I added the boot permissions in manifest file (see code below), BroadcastReceiver started to get boot completed event and the service is starting successfully. For the solution to work (as suggested by @Eren Tüfekçi) I had to enable auto start permission in phone settings for my application. If anyone has a solution, how to enable it programmatically, please let us know. Thank you.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="kor.location.tracker">
<uses-permission android:name="android.permission.INTERNET" ></uses-permission>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<receiver android:name="kor.location.tracker.AutoStart"
android:enabled="true"
android:exported="true">
<intent-filter android:directBootAware="true">
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<action android:name="android.intent.action.REBOOT"/>
</intent-filter>
</receiver>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:enabled="true"
android:name="kor.location.tracker.WorkerService"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE"
/>
</application>
</manifest>
Autostart (BOOT_COMPLETED) does not work on the Nomi tablet
I realized that the problem is not in the code, but the device itself. Autoplay not working on my tablet for any application. As a workaround I have used the event "android.intent.action.USER_PRESENT", which is triggered after the device loading and screen unlocking.
auto start app when boot completed android
Add:
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
To your <receiver>
element in the manifest.
android broadcastreceiver auto start on boot up
The problem is you are trying to show an AlertDialog
from a BroadcastReceiver
, which isn't allowed. You can't show an AlertDialog
from a BroadcastReceiver
. Only activities can display dialogs.
You should do something else, have the BroadcastReceiver
start on boot as you do and start an activity to show the dialog.
Add the following Activity to your application
public class AlertActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new AlertDialog.Builder(this)
.setTitle("OK")
.setMessage("OK")
.setPositiveButton("ㅇㅇ", null)
.setCancelable(false)
.show();
}
}
Also don't forget to add the new activity to your manifest.
Then you just need to start the activity in your receiver
@Override
public void onReceive(Context context, Intent intent)
{
context.startService(new Intent(context, MainService.class));
context.startActivity(new Intent(context, AlertActivity.class));
}
If this answer was helpful, please click the checkmark under the like button to indicate so.
Related Topics
How Does One Implement Drag and Drop for Android Marker
How to Copy Selected Files from Android with Adb Pull
Android - Periodic Background Service - Advice
How to Check the Internet Connection Periodically in Whole Application
Yuv to Rgb Conversion by Fragment Shader
No Notification Sound When Sending Notification from Firebase in Android
Android Can't Record Video with Front Facing Camera, Mediarecorder Start Failed: -19
How to Add a Hint in Spinner in Xml
Network_Provider Not Providing Updated Locations
Sqlite Query in Android to Count Rows
How to Align Textview Around an Imageview
Mediametadataretriever Setdatasource Throws Illegalargumentexception