2017-09-08 9 views
-1

SMS을받을 수있는 앱을 만들기 위해 Android 스튜디오에서 android.provider.Telephony 작업을 찾을 수 없습니다. 안드로이드 개발자를 포함한 거의 모든 기사는 인벤 트 필터 조치 android.provider.Telephony.SMS_RECEIVE을 매니페스트 파일에 포함시켜야한다고 말합니다. 그러나 나는이 행동이 안드로이드 스튜디오에 의해 더 이상 지원되지 않는다는 것을 알아 냈습니다. 이것은 당신이 매니페스트에 의도 필터를 포함해야android studio에서 SMS 권한을 찾을 수 없습니다.

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

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

편집 된 질문, 추가 된 태그 및 향상된 형식. – Akshay

답변

0

PLS 도와주세요 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 studio에서 android.provider.Telephony.SMS_RECEIVED 액션 태그를 인식 할 수 없습니다. 그게 문제 야. –

+0

나는 액션 태그가 최신 API에서 제거되었다고 생각한다. 이것이 대체 옵션 –

0

당신은 당신의 매니페스트 파일에 권한을 부여해야합니다, 당신은해야 시도 나에게

+0

보다 정확히 동일한 코드를 작성했지만 android studio가 android.provider.Telephony.SMS_RECEIVED 액션 태그를 인식 할 수 없습니다. 그게 문제 야. –

+0

19 이상의 API 레벨을 사용하여 21 이상으로 만들어야합니다. –