2017-09-08 16 views
-1

SMSを受け取ることができるアプリを作成するためのアンドロイドスタジオでandroid.provider.Telephonyアクションが見つかりません。アンドロイドの開発者を含むほぼすべての記事は、インベントリフィルタアクションandroid.provider.Telephony.SMS_RECEIVEをマニフェストファイルに含める必要があると言います。しかし、私はこの行動がアンドロイドスタジオによってもはやサポートされていないことを理解しました。そして、あなたがマニフェストにインテントフィルタを含める必要があり、あなたが持っている必要がありアンドロイドスタジオでSMS許可が見つかりません

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

+0

編集された質問、追加されたタグ、改良された書式設定。 – Akshay

答えて

0

plsはあなたがあなたのマニフェストファイルへのアクセス権を与える必要があり、この

// 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

私は全く同じコードを書いていますが、アンドロイドスタジオはアクションタグandroid.provider.Telephony.SMS_RECEIVEDを認識できません。それは問題です –

+0

私は、アクションタグは最新のAPIから削除されると思います。これが代替オプション –

0

を試してみてください、私を助けてくださいBroadcastReceiverを拡張するクラスを取って、受信者名としてそのクラスの名前を書いてください。私の場合、それは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

の場合よりも正確に同じコードを書いていますが、アンドロイドスタジオはアクションタグandroid.provider.Telephony.SMS_RECEIVEDを認識できません。それは問題です –

+0

19以上のAPIレベルを使用すると21以上になるようにしてください。 –

関連する問題