BroadcastReceiver应用程序显示错误

时间:2018-07-11 15:34:04

标签: android android-layout

我制作了这个非常小的应用程序,它将仅收听任何振铃模式更改广播,并触发一个吐司以在屏幕上显示“ Ringer Mode Changed”。我不知道我要去哪里错了。 IDE现在显示任何错误,因此可能存在语义错误或此类错误。

这是Receiver.java文件:

package com.example.android.testingbroadcastreceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class Receiver extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {
    Toast.makeText(context, "Ringer Mode Changed", Toast.LENGTH_SHORT).show();
}
}

这是AndroidManifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.testingbroadcastreceiver">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <receiver android:name=".Receiver" android:exported="true">
        <intent_filter>
            <action android:name="android.media.RINGER_MODE_CHANGED"/>
        </intent_filter>
    </receiver>
</application>

</manifest>

MainActivity.java文件与此没有任何关联。

1 个答案:

答案 0 :(得分:0)

我不确定您确切的问题是什么,但是如果Receiver.java是它自己的类而不是片段,请尝试用“ this”替换吐司中的“ Context”。 您的代码应如下所示:

    Toast.makeText(this, "Ringer Mode Changed", Toast.LENGTH_SHORT).show();