2017-09-08 3 views
-1

Je suis incapable de trouver l'action android.provider.Telephony dans le studio android pour créer une application qui peut recevoir SMS. Presque tous les articles, y compris le développeur Android, dit que je dois inclure une action de filtrage d'intention android.provider.Telephony.SMS_RECEIVE dans le fichier manifeste. Mais j'ai compris que cette action n'est plus supportée par le studio android. S'il vous plaît aidez-moiImpossible de trouver la permission SMS dans android studio

+0

Question éditée, étiquettes ajoutées et formatage amélioré. – Akshay

Répondre

0

pls essayer

// Add this in manifest 
     <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
     <uses-permission android:name="android.permission.READ_SMS" /> 

    <receiver android:name=".SMSReciver"> 
       <intent-filter> 
        <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
       </intent-filter> 
    </receiver> 

//Create new class 
    public class SMSReciver extends BroadcastReceiver 
    { 
     private Context mContext; 

     @Override 
     public void onReceive(Context context, Intent intent) 
     { 
      mContext = context; 
      Bundle myBundle = intent.getExtras(); 
      SmsMessage[] messages = null; 
      String strMessage = ""; 

      String lMessageBody = "", lMessageFrom = ""; 

      if (myBundle != null) 
      { 
       Object[] pdus = (Object[]) myBundle.get("pdus"); 
       messages = new SmsMessage[pdus.length]; 

       for (int i = 0; i < messages.length; i++) 
       { 
        messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 

        lMessageFrom = messages[i].getOriginatingAddress(); 
        lMessageBody = messages[i].getMessageBody(); 
       } 
      } 
     } 
    } 
+0

J'ai écrit exactement le même code mais le studio android est incapable de reconnaître le tag d'action android.provider.Telephony.SMS_RECEIVED. C'est le problème –

+0

Je pense que le tag d'action est supprimé des dernières API. Si c'est le cas que ce qui est l'option alternative –

0

Vous devez donner l'autorisation à votre fichier manifeste,

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

Ensuite, vous devez inclure le filtre intention de votre manifeste, vous devriez avoir pris une classe qui étend BroadcastReceiver écrire le nom de cette classe en tant que nom du récepteur. Dans mon cas, il est SMSReceivcer.

<receiver android:name=".SMSReceivcer" 
     android:exported="true" 
     android:permission="android.permission.BROADCAST_SMS"> 
     <intent-filter> 
      <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
     </intent-filter> 
    </receiver> 
+0

j'ai écrit exactement le même code mais le studio android est incapable de reconnaître le tag d'action android.provider.Telephony.SMS_RECEIVED. C'est le problème –

+0

Vous devriez utiliser le niveau d'API au-dessus de 19 pour essayer de le faire 21 ou au-dessus. –