我制作了这个非常小的应用程序,它将仅收听任何振铃模式更改广播,并触发一个吐司以在屏幕上显示“ 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文件与此没有任何关联。
答案 0 :(得分:0)
我不确定您确切的问题是什么,但是如果Receiver.java是它自己的类而不是片段,请尝试用“ this”替换吐司中的“ Context”。 您的代码应如下所示:
Toast.makeText(this, "Ringer Mode Changed", Toast.LENGTH_SHORT).show();