J'essaie d'activer et de désactiver l'écran via SMS. voici mon code ci-dessous je ne sais pas ce qui a mal tourné car il ne fonctionne pas du tout. Aidez-moi à trouver l'erreur. Je joins également le fichier manifeste. Merci d'avance. Mon fichier java:Écran activé et désactivé via sms reçus
public class MyReceiver extends BroadcastReceiver{
String sender;
@Override
public void onReceive(Context context, Intent intent) {
SmsMessage[] sms = null;
Bundle b = intent.getExtras();
String str = " SMS From : ";
if (b != null) {
Object[] pdus = (Object[]) b.get("pdus");
sms = new SmsMessage[pdus.length];
for (int i = 0; i < sms.length; i++) {
sms[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
if (i == 0) {
str += sms[i].getOriginatingAddress();
str += ":"+sms[i].getMessageBody().toString();
}else if (sms[i].getMessageBody().equals("D")) {
Intent in2= new Intent(Intent.ACTION_SCREEN_OFF);
in2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(in2);
}else if (sms[i].getMessageBody().equals("E")) {
Intent in3= new Intent(Intent.ACTION_SCREEN_ON);
in3.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(in3);
}
}
}
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
Log.d("Receiving", str);
}
}
}
MON fichier manifeste:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<receiver android:name=".MyReceiver">
<intent-filter android:priority="100">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
<action android:name="android.intent.action.SCREEN_OFF"/>
<action android:name="android.intent.action.SCREEN_ON"/>
</intent-filter>
</receiver>
</application>
Ainsi, ne reçoit-il pas le SMS ou n'allume-t-il pas l'écran? – cYrixmorten
il ne s'allume pas/éteint à la réception, mais après quelques essais, il a même cessé de recevoir des SMS, comme il devrait montrer le toast lors de la réception de SMS. – Disguise
Vous faites beaucoup trop de travail à l'intérieur de votre récepteur. Tout ce que vous devez faire est de recevoir l'intention et de transmettre le contrôle à une activité ou un service pour faire le travail. –