I am trying to create a new incoming call screen in android,
when I receive an incoming call that runs in my application, but it immediately rings and the incoming call screen is by default suitable.
what am I doing wrong?
my code is:
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8" ?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myfirstapp" android:versionCode="7" android:versionName="7"> <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="10"></uses-sdk> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/> <uses-permission android:name="android.permission.CALL_PHONE" /> <application android:label="@string/app_name" android:icon="@drawable/ic_launcher"> <receiver android:name=".MyPhoneBroadcastReceiver" android:enabled="true"> <intent-filter android:priority="99999"> <action android:name="android.intent.action.PHONE_STATE" /> </intent-filter> </receiver> <activity android:name=".Call" > </activity> </application> </manifest>
MyPhoneBroadcastReceiver.java:
package com.example.myfirstapp; import android.app.Activity; import android.content.Context; import android.content.Intent; public class MyPhoneBroadcastReceiver extends Activity{ public void onReceive(final Context context, Intent intent) { Intent main_intent = new Intent(this, Call.class); context.startActivity(main_intent); } }
Call.java:
package com.example.myfirstapp; import android.app.Activity; import android.os.Bundle; public class Call extends Activity{ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
Journal:
10-14 20:59:51.056: E/AndroidRuntime(1826): FATAL EXCEPTION: main 10-14 20:59:51.056: E/AndroidRuntime(1826): java.lang.RuntimeException: Unable to instantiate receiver com.example.myfirstapp.MyPhoneBroadcastReceiver: java.lang.ClassCastException: com.example.myfirstapp.MyPhoneBroadcastReceiver cannot be cast to android.content.BroadcastReceiver 10-14 20:59:51.056: E/AndroidRuntime(1826): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2210) 10-14 20:59:51.056: E/AndroidRuntime(1826): at android.app.ActivityThread.access$1500(ActivityThread.java:130) 10-14 20:59:51.056: E/AndroidRuntime(1826): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271) 10-14 20:59:51.056: E/AndroidRuntime(1826): at android.os.Handler.dispatchMessage(Handler.java:99) 10-14 20:59:51.056: E/AndroidRuntime(1826): at android.os.Looper.loop(Looper.java:137) 10-14 20:59:51.056: E/AndroidRuntime(1826): at android.app.ActivityThread.main(ActivityThread.java:4745) 10-14 20:59:51.056: E/AndroidRuntime(1826): at java.lang.reflect.Method.invokeNative(Native Method) 10-14 20:59:51.056: E/AndroidRuntime(1826): at java.lang.reflect.Method.invoke(Method.java:511) 10-14 20:59:51.056: E/AndroidRuntime(1826): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 10-14 20:59:51.056: E/AndroidRuntime(1826): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 10-14 20:59:51.056: E/AndroidRuntime(1826): at dalvik.system.NativeStart.main(Native Method) 10-14 20:59:51.056: E/AndroidRuntime(1826): Caused by: java.lang.ClassCastException: com.example.myfirstapp.MyPhoneBroadcastReceiver cannot be cast to android.content.BroadcastReceiver 10-14 20:59:51.056: E/AndroidRuntime(1826): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2205) 10-14 20:59:51.056: E/AndroidRuntime(1826): ... 10 more
source share