2017-10-19 8 views
0

Si je définis mon application comme application de messagerie par défaut, tous les messages entrants ne s'affichent pas dans les autres applications de messagerie. Voici mon SmsReceiver et manifeste. Un message est simplement affiché comme une notification et n'est pas répertorié dans une autre application de messagerie. En fait, je veux juste définir mon application par défaut uniquement pour envoyer des MMS, donc je ne veux pas gérer les messages entrants par mon application.Pourquoi les messages texte n'apparaissent pas dans les autres applications de messagerie, après avoir défini mon application comme application de messagerie par défaut?

Merci.

+0

'Voici mon SmsReceiver et file.' manifeste Où est le manifeste que vous avez dit? Editez votre question – Xenolion

+0

woops Je viens de poster. –

+0

L'application par défaut est responsable de l'écriture de tous les SMS entrants dans le fournisseur. Il est également responsable de tous les MMS entrants. Si votre application est la version par défaut, elle doit être une application de messagerie à part entière. –

Répondre

0

Récepteur mis à jour comme ci-dessous. cela fonctionne

SmsReceiver public class étend BroadcastReceiver {

@Override 
public void onReceive(Context context, Intent intent) { 

    Object[] smsExtra = (Object[]) intent.getExtras().get("pdus"); 
    String body = ""; 
    String msg_from = ""; 
    SmsMessage[] msgs = null; 
    msgs = new SmsMessage[smsExtra.length]; 
    for (int i = 0; i < smsExtra.length; ++i) { 
     SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]); 
     msgs[i] = SmsMessage.createFromPdu((byte[])smsExtra[i]); 
     msg_from = msgs[i].getOriginatingAddress(); 
     body += sms.getMessageBody(); 
    } 
    ContentValues values = new ContentValues(); 
    values.put("address", msg_from);//sender name 
    values.put("body", body); 
    context.getContentResolver().insert(Uri.parse("content://sms/inbox"), values); 
    Notification notification = new Notification.Builder(context) 
      .setContentText(body) 
      .setContentTitle(msg_from) 
      .setSmallIcon(R.drawable.ic_alert) 
      .setStyle(new Notification.BigTextStyle().bigText(body)) 
      .build(); 
    NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context); 
    notificationManagerCompat.notify(1, notification); 
} 

}