2013-03-13 153 views
1

我創建傳入呼叫接收活動SipDemo。我的活動有兩個按鈕「接受呼叫」和「拒絕呼叫」。當我接到來電時,我自己的活動開放,如 ---->來電類---->onReceive() ---->去我的電話選擇活動。 這裏是這個上面的兩個按鈕,如接受和拒絕呼叫。但是當我點擊「接受電話」時。 A Nullpointer Exception生成。它在SipAudiocall傳入;SipDemo的onReceive()SipAudioCall NullPointerException給

這是新來的學員: -

static SipAudioCall incomingCall = null; 
@Override 
public void onReceive(final Context context, Intent intent) { 

Intent startActivity = new Intent(); 
    startActivity.setClass(context, Mycall.class); 
     startActivity.setAction(IncomingCallReceiver.class.getName()); 
     startActivity.setFlags( 
       Intent.FLAG_ACTIVITY_NEW_TASK 
       | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 
     context.startActivity(startActivity); 


} 

public static void acceptCall() { 
    incomingCall.sendDtmf(9); 
    try { 
     incomingCall.sendDtmf(9); 
     incomingCall.answerCall(200); 
     //wtActivity.gototimer("i"); 
    } catch (SipException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    // wtActivity.gototimer("i"); 
} 


public void rejectCaLL() { 
    try { 
     incomingCall.endCall(); 
    } catch (SipException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

這是我的電話接活動類: -

public class Mycall extends Activity { 

Button acct; 
IncomingCallReceiver incomingCallReceiver; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    // Note that none of the preferences are actually defined here. 
    // They're all in the XML file res/xml/preferences.xml. 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.my); 

    acct = (Button) findViewById(R.id.button1); 
    acct.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      IncomingCallReceiver.acceptCall(); 

     } 
    }); 



} 

}

這是AndroidManifest.xml中: -

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.example.android.sip"> 
<application android:icon="@drawable/icon" android:label="SipDemo"> 
    <service android:name=".MService"> 

    </service> 
    <activity android:name=".WalkieTalkieActivity" 
     android:configChanges="orientation|keyboardHidden"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 
    <activity android:name=".SipSettings" android:label="set_preferences"/> 


    <receiver android:name=".IncomingCallReceiver" android:enabled="true" android:label="Call Receiver"> 
     <intent-filter> 
     <action android:name="android.SipDemo.INCOMING_CALL" /> 
    </intent-filter> 
     </receiver> 
      <activity android:name=".Mycall" 
       > 
       </activity> 
      <activity android:name=".Myclass"/> 
</application> 
<uses-sdk android:minSdkVersion="9" /> 
<uses-permission android:name="android.permission.USE_SIP" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

<uses-feature android:name="android.hardware.sip.voip" android:required="true" /> 
<uses-feature android:name="android.hardware.wifi" android:required="true" /> 
<uses-feature android:name="android.hardware.microphone" android:required="true" /> 

請專家幫幫我。自1個月以來,我已經涉及這個問題。

我在等待您的回覆。

謝謝

回答

0

Becouse您

IncomingCallReceiver incomingCallReceiver; 

是在調用它... 如果你創建你必須小心,也許開始它的創造者,方法的靜態類的時間空。

創建一個抽象類:

public abstract class IncomingCallReceiver 

,改變你的方法public static final

+0

謝謝4回答。是的,我知道了 。但我怎麼能解決它。 PLZ建議 – user2160008 2013-03-13 10:45:57

+0

見編輯答案。不知道這是否有效。你覆蓋了一個接口。我看不出哪一個。請更新您的代碼。 – 2013-03-13 10:55:43

+0

用於晚期回覆。這也不起作用,給我同樣的錯誤。 – user2160008 2013-03-13 12:43:38