2014-03-18 3 views
0

я хочу прочитать входящие смс .. я создал этот класс, чтобы сделать это:Android приемник SMS не работает

public class smsRec extends BroadcastReceiver { 
    private static final String LOG_TAG = "SMSApp"; 

    /* package */ static final String ACTION = 
      "android.provider.Telephony.SMS_RECEIVED"; 

    // @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction().equals(ACTION)) { 
      // if(message starts with SMStretcher recognize BYTE) 
      StringBuilder sb = new StringBuilder(); 

      /* The SMS-Messages are 'hiding' within the extras of the Intent. */ 
      Bundle bundle = intent.getExtras(); 
      if (bundle != null) { 
       /* Get all messages contained in the Intent*/ 
       android.telephony.SmsMessage[] messages = 
        Telephony.Sms.Intents.getMessagesFromIntent(intent); 

       /* Feed the StringBuilder with all Messages found. */ 
       for (android.telephony.SmsMessage currentMessage : messages){ 
        sb.append("Received compressed SMSnFrom: "); 
        /* Sender-Number */ 
        sb.append(currentMessage.getDisplayOriginatingAddress()); 
        sb.append("n----Message----n"); 
        /* Actual Message-Content */ 
        sb.append(currentMessage.getDisplayMessageBody()); 
       } 
      } 
      /* Logger Debug-Output */ 
      Log.i(LOG_TAG, "[SMSApp] onReceiveIntent: " + sb); 

      /* Show the Notification containing the Message. */ 
      Toast.makeText(context, sb.toString(), Toast.LENGTH_LONG).show(); 

     } 
    } 

    private void appendData(StringBuilder buf, String key, String value) { 
     buf.append(", "); 
     buf.append(key); 
     buf.append('='); 
     buf.append(value); 
    } 


} 

и в манифесте:

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

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

, но я получаю ошибку, и регистрационный код:

03-18 01:00:47.212: E/AndroidRuntime(13808): FATAL EXCEPTION: main 
03-18 01:00:47.212: E/AndroidRuntime(13808): Process: com.dd.speech, PID: 13808 
03-18 01:00:47.212: E/AndroidRuntime(13808): java.lang.RuntimeException: Unable to instantiate receiver com.dd.speech.SMSReceiver: java.lang.ClassNotFoundException: Didn't find class "com.dd.speech.SMSReceiver" on path: DexPathList[[zip file "/data/app/com.dd.speech-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.dd.speech-2, /vendor/lib, /system/lib]] 
03-18 01:00:47.212: E/AndroidRuntime(13808): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2420) 
03-18 01:00:47.212: E/AndroidRuntime(13808): at android.app.ActivityThread.access$1700(ActivityThread.java:145) 
03-18 01:00:47.212: E/AndroidRuntime(13808): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1282) 
03-18 01:00:47.212: E/AndroidRuntime(13808): at android.os.Handler.dispatchMessage(Handler.java:102) 
03-18 01:00:47.212: E/AndroidRuntime(13808): at android.os.Looper.loop(Looper.java:136) 
03-18 01:00:47.212: E/AndroidRuntime(13808): at android.app.ActivityThread.main(ActivityThread.java:5081) 
03-18 01:00:47.212: E/AndroidRuntime(13808): at java.lang.reflect.Method.invoke(Native Method) 
03-18 01:00:47.212: E/AndroidRuntime(13808): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 
03-18 01:00:47.212: E/AndroidRuntime(13808): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607) 
03-18 01:00:47.212: E/AndroidRuntime(13808): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.dd.speech.SMSReceiver" on path: DexPathList[[zip file "/data/app/com.dd.speech-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.dd.speech-2, /vendor/lib, /system/lib]] 
03-18 01:00:47.212: E/AndroidRuntime(13808): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
03-18 01:00:47.212: E/AndroidRuntime(13808): at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
03-18 01:00:47.212: E/AndroidRuntime(13808): at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
03-18 01:00:47.212: E/AndroidRuntime(13808): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2415) 
03-18 01:00:47.212: E/AndroidRuntime(13808): ... 8 more 
03-18 01:00:47.212: E/AndroidRuntime(13808): Suppressed: java.lang.ClassNotFoundException: com.dd.speech.SMSReceiver 
03-18 01:00:47.212: E/AndroidRuntime(13808):  at java.lang.Class.classForName(Native Method) 
03-18 01:00:47.212: E/AndroidRuntime(13808):  at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
03-18 01:00:47.212: E/AndroidRuntime(13808):  at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
03-18 01:00:47.212: E/AndroidRuntime(13808):  at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
03-18 01:00:47.212: E/AndroidRuntime(13808):  ... 10 more 
03-18 01:00:47.212: E/AndroidRuntime(13808): Caused by: java.lang.NoClassDefFoundError: Class "Lcom/dd/speech/SMSReceiver;" not found 
03-18 01:00:47.212: E/AndroidRuntime(13808):  ... 14 more 

Не удается найти ошибку

ответ

3

Имя класса в вашей Java и манифесте должно совпадать. В настоящее время один называется SMSReceiver, а другой - smsRec

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