-
-
Save bymaximus/99b26a98242238ea499365dd89ff3fde to your computer and use it in GitHub Desktop.
receive boot completed listener - android receiver example (mobile phone reload event handler)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
MainActivity.java: | |
package com.alex.receivers; | |
import android.Manifest; | |
import android.content.IntentFilter; | |
import android.content.pm.PackageManager; | |
import android.os.Bundle; | |
import android.widget.Toast; | |
import androidx.annotation.NonNull; | |
import androidx.appcompat.app.AppCompatActivity; | |
import androidx.core.app.ActivityCompat; | |
import androidx.core.content.ContextCompat; | |
public class MainActivity extends AppCompatActivity { | |
private static final int PERMISSION_REQUEST_CODE = 100; | |
MyReceiver r = new MyReceiver(); | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
if (checkPermission()) { | |
onPermissionGranted(); | |
} else { | |
requestPermission(); | |
} | |
} | |
private boolean checkPermission() { | |
return ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_BOOT_COMPLETED) | |
== PackageManager.PERMISSION_GRANTED; | |
} | |
private void requestPermission() { | |
ActivityCompat.requestPermissions(this, | |
new String[]{Manifest.permission.RECEIVE_BOOT_COMPLETED}, | |
PERMISSION_REQUEST_CODE); | |
} | |
private void onPermissionGranted() { | |
Toast.makeText(this, "Permissions Granted!", Toast.LENGTH_SHORT).show(); | |
var i = new IntentFilter("android.intent.action.BOOT_COMPLETED"); | |
registerReceiver(r, i); | |
} | |
@Override | |
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { | |
super.onRequestPermissionsResult(requestCode, permissions, grantResults); | |
if (requestCode == PERMISSION_REQUEST_CODE) { | |
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { | |
onPermissionGranted(); | |
} else { | |
Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show(); | |
} | |
} | |
} | |
@Override | |
protected void onDestroy() { | |
super.onDestroy(); | |
unregisterReceiver(r); | |
} | |
} | |
==================================================================================================================================== | |
MyReceiver.java: | |
package com.alex.receivers; | |
import android.content.BroadcastReceiver; | |
import android.content.Context; | |
import android.content.Intent; | |
public class MyReceiver extends BroadcastReceiver { | |
public void onReceive(Context context, Intent intent) { | |
if (intent != null && "android.permission.RECEIVE_BOOT_COMPLETED".equals(intent.getAction())) { | |
var i = new Intent(context, MainActivity.class); | |
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); | |
context.startActivity(i); | |
} | |
} | |
} | |
==================================================================================================================================== | |
AndroidManifest.xml: | |
... | |
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> | |
... | |
<receiver | |
android:name=".MyReceiver" | |
android:enabled="true" | |
android:permission="android.permission.RECEIVE_BOOT_COMPLETED" | |
android:exported="true"> | |
<intent-filter> | |
<action android:name="android.intent.action.BOOT_COMPLETED" /> | |
</intent-filter> | |
</receiver> | |
</application> | |
</manifest> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment