我正在尝试一个简单的代码,以便在接到电话时将来电显示为烤面包。
我收到以下错误:
03-11 13:34:41.143: E/AndroidRuntime(27141): java.lang.NullPointerException
03-11 13:34:41.143: E/AndroidRuntime(27141): at android.widget.Toast.<init>(Toast.java:93)
03-11 13:34:41.143: E/AndroidRuntime(27141): at android.widget.Toast.makeText(Toast.java:241)
03-11 13:34:41.143: E/AndroidRuntime(27141): at com.demotest.ringer.PhoneListenerBroad$MyPhoneStateListener.onCallStateChanged(PhoneListenerBroad.java:47)
03-11 13:34:41.143: E/AndroidRuntime(27141): at android.telephony.PhoneStateListener$2.handleMessage(PhoneStateListener.java:369)
03-11 13:34:41.143: E/AndroidRuntime(27141): at android.os.Handler.dispatchMessage(Handler.java:102)
03-11 13:34:41.143: E/AndroidRuntime(27141): at android.os.Looper.loop(Looper.java:136)
03-11 13:34:41.143: E/AndroidRuntime(27141): at android.app.ActivityThread.main(ActivityThread.java:5017)
03-11 13:34:41.143: E/AndroidRuntime(27141): at java.lang.reflect.Method.invokeNative(Native Method)
03-11 13:34:41.143: E/AndroidRuntime(27141): at java.lang.reflect.Method.invoke(Method.java:515)
03-11 13:34:41.143: E/AndroidRuntime(27141): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-11 13:34:41.143: E/AndroidRuntime(27141): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-11 13:34:41.143: E/AndroidRuntime(27141): at dalvik.system.NativeStart.main(Native Method)
以下是我正在尝试的代码:
public class PhoneListenerBroad extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
try
{
// TELEPHONY MANAGER class object to register one listner
TelephonyManager tmgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
//Create Listner
MyPhoneStateListener PhoneListener = new MyPhoneStateListener();
// Register listener for LISTEN_CALL_STATE
tmgr.listen(PhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
}
catch (Exception e)
{
Log.e("Phone Receive Error", " " + e);
}
}
private class MyPhoneStateListener extends PhoneStateListener
{
private Context context;
public void onCallStateChanged(int state, String incomingNumber)
{
Log.e("MyPhoneListener",state+" incoming no:"+incomingNumber);
if (state == 1)
{
String msg = "New Phone Call Event. Incomming Number : "+incomingNumber;
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
}
}
}
清单具有必需的权限和声明。.我不确定要往哪里出错?
public class PhoneListenerBroad extends BroadcastReceiver{
Context c;
@Override
public void onReceive(Context context, Intent intent) {
c = context;
try {
// TELEPHONY MANAGER class object to register one listner
TelephonyManager tmgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
// Create Listner
MyPhoneStateListener PhoneListener = new MyPhoneStateListener();
// Register listener for LISTEN_CALL_STATE
tmgr.listen(PhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
} catch (Exception e) {
Log.e("Phone Receive Error", " " + e);
}
}
private class MyPhoneStateListener extends PhoneStateListener
{
private Context context;
public void onCallStateChanged(int state, String incomingNumber) {
Log.e("MyPhoneListener", state + " incoming no:" + incomingNumber);
if (state == 1) {
String msg = "New Phone Call Event. Incomming Number : " + incomingNumber;
Toast.makeText(c, msg, Toast.LENGTH_SHORT).show();
}
}
}}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句