2017-02-15 1 views
0

Mon application Android en cours de création par Android Studio empêche maintenant involontairement mon appareil Galaxy de verrouiller l'écran et de dormir. autorisations demandées sont suivantes:L'application Android empêche l'appareil de verrouiller l'écran et de dormir

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

Plus tôt, je compris la permission

<!--<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>--> 

mais maintenant cette ligne est commenté. Seules les permissions INTERNET et ACCESS_NETWORK_STATE sont maintenant demandées. J'ai essayé de supprimer (désinstaller) explicitement mon application de l'appareil et de l'installer à nouveau, mais l'application (lorsqu'elle est lancée et active) ne permet pas à l'appareil de se mettre en veille. Quand une autre application est active (mon application est lancée mais inactive), l'appareil s'endort dans un temps défini. L'application utilise les classes PendingIntent, Broadcast et AlarmManager, mais le périphérique ne dort pas même si aucune méthode de ces classes n'est appelée. classe n'est pas utilisé.

AndroidManifest.xml suit:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="spectorsky.timer"> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <!--<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>--> 
    <application 

     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name="spectorsky.timer.MainActivity" 
      android:label="@string/app_name" 
      android:windowSoftInputMode="stateAlwaysHidden" 
      android:theme="@style/AppTheme.NoActionBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <receiver android:name="MyAlarmReceiver" /> 
    </application> 

Voici la classe de récepteur:

public class MyAlarmReceiver extends BroadcastReceiver { 

    public MyAlarmReceiver() { 
     super(); 
     } 

     public void onReceive(Context context, Intent intent) 
     { 
      int channelNumber=intent.getIntExtra("channelNumber",13); 
      String ipAddress=intent.getStringExtra("ipAddress"); 
      int nChannel=intent.getIntExtra("nChannel",13); 
      intent.getParcelableExtra("messenger"); 
      new TVTimerAsync(ipAddress,nChannel,m, context).execute(MainActivity.digitReader(channelNumber)); 
     } 
} 

Et voici le code invoquant BroadCast:

MyIntent myIntentAlarm; 
int myIntentId=0; 
AlarmManager myAlarmManager; 

...... .............

myAlarmManager.set(AlarmManager.RTC_WAKEUP, d.getTime(), PendingIntent.getBroadcast(MainActivity.this, myIntentId++, 
        myIntentAlarm, PendingIntent.FLAG_ONE_SHOT)); 

Merci d'avance pour toute idée. PS Il ya beaucoup de messages sur un tel problème, mais je ne pouvais pas trouver quelque chose comme mon cas.

+0

s'il vous plaît fournir votre fichier manifeste et aussi vérifier s'il y a un code lié à l'autorisation réveiller verrouillage. Programme mentionné – KDeogharkar

+0

sans plus d'extraits de code de votre application, nous pouvons seulement deviner quel est votre problème ici .. – IIIIIIIIIIIIIIIIIIIIII

+0

AndroidManifest.xml a été ajouté. Les seules choses dans le code qui pourraient se rapporter au verrou de réveil sont les classes 'PendingIntent',' Broadcast' et 'AlarmManager'. Cependant, même si je lance simplement l'application et qu'aucune méthode de ces classes n'est exécutée, les périphériques ne peuvent pas s'endormir. Dois-je fournir sur Créer de mon activité principale? C'est de 85 lignes ... – Spectorsky

Répondre

0

J'ai nettoyé presque tout dans le projet: l'application la capacité restaurée du sommeil après la suppression android:keepScreenOn attribut dans ListView définition:

android:keepScreenOn="true"

 android:scrollIndicators="right" 
     android:scrollbarAlwaysDrawVerticalTrack="true" 
     android:scrollbarStyle="insideInset" 
     android:textFilterEnabled="false" 
     android:layout_height="match_parent" 
     android:text="@string/deleteChosen"> 

</ListView> 

Je l'ai espoir que cet attribut fait que la liste reste devant les autres contrôles, et elle ne sera jamais cachée. Cependant, le sens a semblé être tout à fait différent: "garder sur l'écran" signifie que l'écran s'allume toujours.

Merci à tous pour essayer de l'aide