Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

Android: mit to open an alarm an activity even in locked screen

 

Android Code Example:

This code example creates an alarm in an Android app like an alarm clock and it opens an activity page when the alarm is triggered.

The App even opens the app activity, when the smartphone is locked in LockScreen.

 

 

 

MainActivity.java

 

package com.example.demowakeupactivity;
import androidx.appcompat.app.AppCompatActivity;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {
   
//------------< MainActivity >------------

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView(
R.layout.activity_main);
    }

   
//========< Buttons >===========
   
public void btnOpenWakeup(View view) {
       
Intent openWakeup = new Intent(this, WakeupAlarmActivity.class);
        startActivity(
openWakeup);
    }
   
public void btnAlarmSetWakeup(View view) {
       
//--------< btnAlarmSetWakeup() >--------
       
setupAlarm();
       
//--------</ btnAlarmSetWakeup() >--------
   
}
   
//========</ Buttons >===========


    //========< Methods >===========

   
private void setupAlarm() {
       
//--------< setupAlarm() >--------

        //*Create an Alarm Receiver, which waits and listens for an alarm event
       
Intent intentAlarmReceiver =new  Intent(this, AlarmReceiver.class);

       
//*Send Alarmreceiver to Broadcast, like global hook.
       
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intentAlarmReceiver, 0);

       
//--------< setup() >--------
        //AlarmManager instance from the system services
       
AlarmManager alarmManager = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
       
//set time for alarm and attach to broadcast
       
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+ 2000, pendingIntent);
       
//--------</ setup() >--------
        //--------</ setupAlarm() >--------
   
}

   
//========</ Methods >===========
    //------------</ MainActivity >------------
}

 

 

WakeupAlarmActivity.java

The Activity Page, which will be opend by the alarm

package com.example.demowakeupactivity;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.TargetApi;
import android.app.KeyguardManager;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.provider.Settings;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

public class WakeupAlarmActivity extends AppCompatActivity {

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView(
R.layout.activity_wakeup);



       
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {

            setShowWhenLocked(
true);
            setTurnScreenOn(
true);
           
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(this.KEYGUARD_SERVICE);
           
keyguardManager.requestDismissKeyguard(this, null);
        }
       
else {

            getWindow().addFlags(
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
                   
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
                   
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
                   
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        }
    }
}

 

 

 

 

AlarmReceiver.java

package com.example.demowakeupactivity;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class AlarmReceiver extends BroadcastReceiver {

   
@Override
   
public void onReceive(Context context, Intent intent) {
       
//------< onReceive() >--------
        //this event triggers when alarm in Android happens
        //*open Wakeup Alarm Activity
       
Intent alarmIntent = new Intent(context, WakeupAlarmActivity.class);
       
alarmIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
       
//open Activitiy
       
context.startActivity(alarmIntent);
       
//------</ onReceive() >--------
   
}
}

 

 

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.SYSTEM_ALERT_WINDOW"/>
    <
uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <
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" />


    <
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">

        <
receiver android:name=".AlarmReceiver"></receiver>

        <
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=".WakeupAlarmActivity"
           
android:parentActivityName=".MainActivity"
           
android:excludeFromRecents="true"
           
android:showOnLockScreen="true"
           
android:showWhenLocked="true"
           
android:turnScreenOn="true"
           
android:showForAllUsers="true"

           
/>
    </
application>


</
manifest>

 

 

Activities sind standard.

 

Activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   
xmlns:app="http://schemas.android.com/apk/res-auto"
   
xmlns:tools="http://schemas.android.com/tools"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
tools:context=".MainActivity"
   
android:orientation="vertical"
   
>


    <
Button
       
android:id="@+id/btnOpenWakeup"
       
android:layout_width="match_parent"
       
android:layout_height="wrap_content"
       
android:backgroundTint="#A1A0A0"
       
android:onClick="btnOpenWakeup"

       
android:text="Open Wakeup" />

    <
Button
       
android:id="@+id/btnWakeup"
       
android:layout_width="match_parent"
       
android:layout_height="wrap_content"
       
android:backgroundTint="#FFEB3B"
       
android:onClick="btnAlarmSetWakeup"
       
android:text="Alarm: Wakeup"
       
android:textColor="#F44336" />

</
LinearLayout>

 

 

 

Und eine Alarm Activity

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
   
xmlns:app="http://schemas.android.com/apk/res-auto"
   
xmlns:tools="http://schemas.android.com/tools"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
android:background="#FF0000"
   
tools:context=".WakeupAlarmActivity">

    <
TextView
       
android:id="@+id/textView"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:text="Alarm"
       
android:textColor="#FFEB3B"
       
android:textSize="36sp"
       
android:textStyle="bold"
       
tools:layout_editor_absoluteX="155dp"
       
tools:layout_editor_absoluteY="292dp" />
</
androidx.constraintlayout.widget.ConstraintLayout>

 

 

 

Mobile
»
Android Code: Tabbed Activity mit verschiedenen Fragments
»
Android Example Code : Tabbed Activity with Different Fragments
»
Android Tabbed Activity mit ViewPage2 Adapter
»
Android: ein Video transparent erstellen mit VideoView, MediaPlayer und FrameLayout
»
Android: mit to open an alarm an activity even in locked screen
»
Android: mit einem Alarm eine Activity öffnen
»
Android : einen kleine Musik Media Abspieler erstellen
»
Android: Layout Constraint zu RelativeLayout
»
Android Studio : Button mit Event erstellen
»
Samsung S6 ScreenMirroring ganz einfach

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de