Last active
April 24, 2025 05:51
-
-
Save sunmeat/4a7235559d5f71e4ddba62ed596ac871 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