thanks to everyone for reading. here's an application that has a boot-receiver so it launches upon starting android device:
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent i1 = new Intent(context, SplashActivity.class);
i1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i1.putExtra("permission_for_service","");
context.startActivity(i1);
}
SplashActivity.class is implemented to obtain permissions before launching MainActivity.class.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!checkAllRequestedPermissions()) {
ActivityCompat.requestPermissions(this, allRequestedPermissions, MY_PERMISSIONS_REQUEST);
}
else {
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
}
private boolean checkAllRequestedPermissions() {
for (String permission : allRequestedPermissions) {
if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
return true;
}
What I'm trying to do is to prevent launching a user interface on boot-up by using a service instead:
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
if (!checkAllRequestedPermissions()) {
ActivityCompat.requestPermissions(this, allRequestedPermissions, MY_PERMISSIONS_REQUEST);
} else {
if (getIntent().hasExtra("permission_for_service")) {
//service init
if (!isServiceRunning(SchedulerService.class)) {
startService(new Intent(this, SchedulerService.class));
}
finish();
} else {
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
}
}
Unfortunately, this crashes on BOOT_COMPLETE. Any ideas on how to make it work? Thanks a million