如何解决使用闹钟和锁屏打开活动
我想打开一个有闹钟的活动。但是当我尝试我找到的所有代码时,当挂起的意图尝试打开活动时,所有代码都会崩溃。 所以,代码应该解决两件事: 1:报警时开启一个活动(在broadcastreceiver onReceive中) 2:即使在锁屏状态下也可以打开活动(打开一个柔光的活动作为昏暗的灯光警报应用程序)
代码逻辑:在主要活动中,我用一个按钮启动一个警报,创建一个警报。闹钟应该打开一个 WakeupActivity
实际代码是:
file AlarmReciever:
public class AlarmReceiver extends broadcastReceiver {
@Override
public void onReceive(Context context,Intent intent) {
Intent activityIntent = new Intent(context,WakeupActivity.class).putExtra("byAlarm","yes");
context.startActivity(activityIntent); //start
// Get the PendingIntent containing the entire back stack
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
PendingIntent resultPendingIntent =stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
Toast.makeText( context,"event onReceive ",Toast.LENGTH_SHORT).show();
}
}
并在文件中:MainActivity.java
public void btnAlarmSetWakeup(View view) {
//--------< btnAlarmSetWakeup() >--------
//< check OverLay Activity >
if (!Settings.canDrawOverlays(this)) {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,Uri.parse("package:" + getPackageName()));
startActivityForResult(intent,0);
}
//</ check OverLay Activity >
AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
//Print("inside scheduleAlarm "+interval);
//logger.writeLog("inside schedule alarm and interval is "+interval);
am.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+ 5000,getPendingIntent(this,12345));
//--------</ btnAlarmSetWakeup() >--------
}
private PendingIntent getPendingIntent(Context context,int id) {
Intent intent = new Intent(context,AlarmReceiver.class)
.putExtra("alarmId",id);
return PendingIntent.getbroadcast(context,id,intent,PendingIntent.FLAG_UPDATE_CURRENT);
}
和 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.demowakeupactivity">
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACTION_MANAGE_OVERLAY_PERMISSION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.SYstem_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.disABLE_KEyguard" />
<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/Theme.DemoWakeupActivity">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".WakeupActivity"
android:parentActivityName=".MainActivity" />
<receiver android:name=".AlarmReceiver"></receiver>
</application>
</manifest>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。