매니페스트에
<receiver android:name=".RingerModeChangedReceiver">
<intent-filter><action android:name="android.media.RINGER_MODE_CHANGED"></action></intent-filter>
</receiver>
이렇게 써주면 안되나요?
package com.example.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
import android.media.AudioManager;
public class RingerModeChangedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
String message = null;
if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL)
message = "벨소리 모드입니다";
else if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT)
message = "무음 모드입니다";
else if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE)
message = "진동 모드입니다";
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
}
이게 메인 코드인데
실행하자 마자 아래와 같은 에러가 납니다 ㅜㅜ
11-19 17:21:19.957: D/AndroidRuntime(7828): Shutting down VM
11-19 17:21:19.957: W/dalvikvm(7828): threadid=1: thread exiting with uncaught exception (group=0x4001e578)
11-19 17:21:20.074: E/AndroidRuntime(7828): FATAL EXCEPTION: main
11-19 17:21:20.074: E/AndroidRuntime(7828): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.receiver/com.example.receiver.RingerModeChangedReceiver}: java.lang.ClassCastException: com.example.receiver.RingerModeChangedReceiver
11-19 17:21:20.074: E/AndroidRuntime(7828): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573)
11-19 17:21:20.074: E/AndroidRuntime(7828): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
11-19 17:21:20.074: E/AndroidRuntime(7828): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
11-19 17:21:20.074: E/AndroidRuntime(7828): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
11-19 17:21:20.074: E/AndroidRuntime(7828): at android.os.Handler.dispatchMessage(Handler.java:99)
11-19 17:21:20.074: E/AndroidRuntime(7828): at android.os.Looper.loop(Looper.java:130)
11-19 17:21:20.074: E/AndroidRuntime(7828): at android.app.ActivityThread.main(ActivityThread.java:3687)
11-19 17:21:20.074: E/AndroidRuntime(7828): at java.lang.reflect.Method.invokeNative(Native Method)
11-19 17:21:20.074: E/AndroidRuntime(7828): at java.lang.reflect.Method.invoke(Method.java:507)
11-19 17:21:20.074: E/AndroidRuntime(7828): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
11-19 17:21:20.074: E/AndroidRuntime(7828): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
11-19 17:21:20.074: E/AndroidRuntime(7828): at dalvik.system.NativeStart.main(Native Method)
11-19 17:21:20.074: E/AndroidRuntime(7828): Caused by: java.lang.ClassCastException: com.example.receiver.RingerModeChangedReceiver
11-19 17:21:20.074: E/AndroidRuntime(7828): at android.app.Instrumentation.newActivity(Instrumentation.java:1024)
11-19 17:21:20.074: E/AndroidRuntime(7828): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1565)
11-19 17:21:20.074: E/AndroidRuntime(7828): ... 11 more
11-19 17:21:29.832: I/Process(7828): Sending signal. PID: 7828 SIG: 9



