매니페스트에 

 <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