【问题标题】:Android Studio: can't add class to <receiver> in AndroidManifestAndroid Studio:无法在 AndroidManifest 中向 <receiver> 添加类
【发布时间】:2016-09-02 22:01:55
【问题描述】:

我已经按照教程所示完成了所有操作,但仍然出现一个错误...我创建了新活动 SmsReceiver.java 并且一切正常,但是当我尝试添加时在清单中

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

它不想接受那个类 .SmsReceiver....

我已经尝试了一切,请帮助。当我将鼠标悬停在它上面时,它会显示“'class' or 'interface' expected”。

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();
        }

    }

  }

}

【问题讨论】:

  • 提供完整清单。
  • 尝试删除圆点
  • 添加完全限定名称。确保类 SmsReceiver 与清单文件顶部声明的类位于同一包中。
  • 请分享您的 Android 包视图和完整 Manifest.xml 的屏幕截图
  • 我添加了包视图和 manifest.xml....删除点不起作用

标签: java android android-studio broadcastreceiver receiver


【解决方案1】:

你说:

我创建了新活动 SmsReceiver.java

如果您创建了Activity,则不能在清单中将其声明为BroadcastReceiver。如果你想拥有一个BroadcastReceiver,那么你的班级需要extend BroadcastReceiver,然后你将它添加到清单中,如下所示:

<receiver android:name=".SmsReceiver">

【讨论】:

  • 我知道,它扩展了。我也尝试过这样做 但它没有用,但我是 android 应用程序的新手,所以..
  • 发布您的代码和完整的清单。你混淆了ActivityBroadcastReceiver
  • 好的,现在都发布了。
  • 对不起,没有想法。一切看起来都很好。
【解决方案2】:

请将该类扩展为您的 .java 文件中的 BroadcastReceiver。如下所示

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-12
    • 2011-04-19
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多