2016-09-02 7 views
-2

Я сделал все точно так же, как показывает учебник, но я все равно получаю одну ошибку ... Я создал новую активность SmsReceiver.java, и все в порядке, но в манифесте, когда Я стараюсь, чтобы добавить этотAndroid Studio: не удается добавить класс в <receiver> в AndroidManifest

<receiver android:name=".SmsReceiver"> // <-- this is problem 
     <intent-filter android:priority="1000"> 
      <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
     </intent-filter> 
</receiver> 

Он не хочет принимать этот класс .SmsReceiver ....

Я пробовал все, пожалуйста, помогите. Когда я наводил указатель мыши на него, он говорил, что «класс» или «интерфейс» ожидаются ».

Here is package view and manifest full code

Это SmsReceiver.java код

package com.dreamdev.matko.smsarduino; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.telephony.SmsMessage; 
import android.widget.Toast; 

public class SmsReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    Bundle bundle = intent.getExtras(); 

    if (bundle != null) { 

     Object[] pdus = (Object[]) bundle.get("pdu"); 

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

      String from = sms.getOriginatingAddress(); 

      String msg = sms.getDisplayMessageBody(); 

      Toast.makeText(context, "Prišla správa", Toast.LENGTH_LONG).show(); 
     } 

    } 

    } 

} 
+0

Обеспечить полный манифест. –

+0

попытайтесь удалить точку –

+0

Добавьте полное имя. Убедитесь, что класс SmsReceiver находится в том же пакете, что и объявленный в верхней части файла манифеста. –

ответ

0

Вы говорите:

Я создал новый вид деятельности SmsReceiver.java

Если вы создали Activity, то вы не можете выложите его в манифесте как BroadcastReceiver. Если вы хотите иметь BroadcastReceiver, то ваш класс должен extend BroadcastReceiver и затем добавить его в манифест, как это:

<receiver android:name=".SmsReceiver"> 
+0

Я знаю, и это продолжается. Я также пытался сделать это и он не работал, но я новичок в приложениях для Android, поэтому ... – Matrox798

+0

Опубликуйте свой код и ваш полный манифест. Вы вводите в заблуждение «Активность» и «BroadcastReceiver». –

+0

Хорошо, теперь он опубликован. – Matrox798

0

Пожалуйста, расширить класс как BroadcastReceiver в файле .java. Как ниже

public class SmsReceiver extends BroadcastReceiver { 
    ...... 
}