0

Ich möchte ein Auto-Logout nach 10.00 Uhr jeden Tag in meiner Anwendung auszuführen, denn das ist, dass ich eine Aufgabe Alarmmanager implementiert haben, aber es ist .Für Testzwecke nicht haben den Aufruf ich den anderen Zeitpunkt gegeben. (ZBAlarmManager ruft die Aufgabe nicht auf?

calendar.set(Calendar.HOUR_OF_DAY,15); 
        calendar.set(Calendar.MINUTE,59); 
        calendar.set(Calendar.SECOND,30); 

) Alarmmanager-Code:

sign_in_button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       hideKeyboard(LoginActivity.this); 
       //implementation of auto logout 
       checkSuiteSession = new CheckSuiteSession(getApplicationContext()); 
       checkSuiteSession.check_attendance_flag("true"); 
       Calendar calendar = Calendar.getInstance(); 
       calendar.set(Calendar.HOUR_OF_DAY,15); 
       calendar.set(Calendar.MINUTE,59); 
       calendar.set(Calendar.SECOND,30); 
       Intent autoLogoutIntent = new Intent(getApplicationContext(),AutoLogoutRecevier.class); 
       PendingIntent pendingIntent = 
         PendingIntent.getBroadcast(getApplicationContext(),100,autoLogoutIntent,PendingIntent.FLAG_UPDATE_CURRENT); 

       AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
       alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY,pendingIntent); 

Meine Rundfunkempfänger Klasse:

public class AutoLogoutRecevier extends BroadcastReceiver { 
    CheckSuiteSession checkSuiteSession; 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     checkSuiteSession = new CheckSuiteSession(context); 
     //calling logout function 
     checkSuiteSession.logoutUser(); 
     Log.d("LOGOUT","auto logout executed"); 
     checkSuiteSession.check_attendance_flag("false"); 


    } 
} 

Mein manif est-Datei (ich habe die folgende Berechtigung hinzugefügt):

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.fresherguru.checksuite"> 

    <!-- To auto-complete the email text field in the login form with the user's emails --> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.READ_PROFILE" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 
    <uses-permission android:name="android.permission.WAKE_LOCK"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <service 
      android:name=".fcm.MyFirebaseMessagingService"> 
      <intent-filter> 
       <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
      </intent-filter> 
     </service> 
     <service android:name=".fcm.MyFirebaseInstanceIDService"> 
      <intent-filter> 
       <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> 
      </intent-filter> 
     </service> 

     <receiver android:name=".autoLogoutReceiver.AutoLogoutRecevier"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED"/> 
     </intent-filter> 
     </receiver> 

     <receiver android:name=".autoLogoutReceiver.ActivateLogin"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED"/> 
      </intent-filter> 
     </receiver> 

     <receiver android:name=".autoLogoutReceiver.ChangeDialogStatus" 
      android:process=":remote"/> 
     <receiver android:name=".autoLogoutReceiver.ScreenUnlockReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.USER_PRESENT" /> 
       <!--<action android:name="android.intent.action.ACTION_SHUTDOWN" />--> 
      </intent-filter> 
      </receiver> 


     <receiver android:name=".autoLogoutReceiver.DeviceBootReceiver" 
      android:enabled="false"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED"/> 
       <action android:name="android.intent.action.REBOOT"/> 
      </intent-filter> 
     </receiver> 
     <service android:name=".service.CallHandleAlarmService" 
      android:enabled="true"/> 

     <activity 
      android:name=".home.LoginActivity" 
      android:theme="@style/AppTheme.NoActionBar" /> 
     <activity 
      android:name=".home.HomeActivity" 
      android:theme="@style/AppTheme.NoActionBar" /> 

     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 


     <activity 
      android:name=".home.CheckSuiteForm" 
      /> 
    </application> 

</manifest> 
+0

Veröffentlichen Sie Ihr Manifest. –

+0

@DavidWasser Ich habe das vollständige Manifest hinzugefügt, bitte überprüfen Sie !! – Sidhartha

+0

Manifest sieht OK aus. Versuchen Sie 'AlarmManager.set()' oder 'setExact()' anstelle von 'setRepeating()' zu verwenden, um zu sehen, ob Sie den Alarm mindestens einmal auslösen lassen können. Fügen Sie außerdem die Protokollierung hinzu und geben Sie die Millisekunden an, die Sie für die Alarmzeit verwenden, und prüfen Sie, ob der Wert Ihren Erwartungen entspricht. –

Antwort

0

ändern und stellen Sie richtige Zeitpunkt für 22.00 in Ihrem Calendar Objekt:

Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.HOUR_OF_DAY,21); 
calendar.set(Calendar.MINUTE,59); 
calendar.set(Calendar.SECOND,59); 
+0

Zu Testzwecken habe ich dieses Timing angegeben (Gestern habe ich mit dem aktuellen Timing überprüft, ob der Code ausgeführt wird oder nicht). – Sidhartha

0

Haben Sie

setzen

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

in Ihrem Manifest?

+0

ya ich habe hinzugefügt. – Sidhartha

Verwandte Themen