2015-07-26 6 views
0

Я пытаюсь создать приложение, которое отправляет по электронной почте картинку после отправки sms на телефон. Поэтому я слежу за this Tutorial без успеха. При отправке sms на реальный телефон в режиме отладки ничего не происходит. Я пытаюсь отлаживать приложение, но программа broadcastreciever даже не запускается.Android Broadcast SMS-приемник не запускается

public class SmsReciever extends BroadcastReceiver { 

final SmsManager sms = SmsManager.getDefault(); 
@Override 
public void onReceive(Context context, Intent intent) { 
Log.i(TAG, "started…"); 
final Bundle bundle = intent.getExtras(); 
    try { 
     if (bundle != null) { 
      final Object[] pdusObj = (Object[]) bundle.get("pdus"); 

      for (int i = 0; i < pdusObj.length; i++) { 
       SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]); 
       String phoneNumber = currentMessage.getDisplayOriginatingAddress(); 

       String senderNum = phoneNumber; 
       String message = currentMessage.getDisplayMessageBody(); 

       Log.i("SmsReciever", "senderNum: " + senderNum + "; message" + message); 

       //action 

      } 
     } 
    } catch (Exception e){ 
     Log.e("SmsReceiver", "Exception sms Reciever" + e); 
    } 

Logcat не печатает никаких ошибок или журналов этого бита кода. Мой файл манифеста выглядит так:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.tapplic.adrianopaulus.smscamera" > 

<uses-permission android:name="android.permission.WRITE_SMS"/> 
<uses-permission android:name="android.permission.READ_SMS"/> 
<uses-permission android:name="ANDROID.PERMISSION.RECEIVE_SMS"></uses-permission> 
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission> 

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

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <receiver android:name=".SmsReciever" > 
     <intent-filter> 
      <action android:name="android.provider.Telephony.SMS_RECIEVED" /> 
     </intent-filter> 
    </receiver> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 

Я также смотрел на эти проблемы на StackOverflow: Android - SMS Broadcast receiver
Android SMS reciever not working

ответ

0

строки разрешений являются чувствительны к регистру. У вас есть:

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

Вы должны иметь:

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

EDIT: Добавить дополнительное описание проблемы:

Кроме того, ACTION в вашем <intent-filter> Ошибочное. У вас есть:

<action android:name="android.provider.Telephony.SMS_RECIEVED" /> 

Однако, это должно быть:

<action android:name="android.provider.Telephony.SMS_RECEIVED" /> 

правило на английском языке: "Я перед тем E, кроме как после C" :-)

+0

Я попробовал его, но Бесполезный Не меняйте ничего, спасибо thow – Adrian

+0

Запустили ли вы свою работу после установки приложения? Если вы никогда не запускаете свою деятельность, то ваш BroadcastReceiver никогда не будет выполнен. –

+0

Да, моя камера работает, моя работа. Но когда я отправляю sms на это устройство, ничего не происходит – Adrian

Смежные вопросы