मुझे नहीं पता कि समस्या कहां है। श्रोता onRinging
ईवेंट नहीं पकड़ता है (इसलिए मैं तय कर सकता हूं कि मैं आने वाली कॉल स्वीकार या अस्वीकार कर दूंगा)।इनकमिंग कॉल पर कोई रिंगिंग ईवेंट
public void onReceive(Context context, Intent intent) {
SipAudioCall incomingCall = null;
try {
SipAudioCall.Listener listener = new SipAudioCall.Listener() {
...
@Override
public void onCallEnded(SipAudioCall call) {
// TODO Auto-generated method stub
super.onCallEnded(call);
}
@Override
public void onRinging(SipAudioCall call, SipProfile caller) {
try {
call.answerCall(30);
call.startAudio();
call.setSpeakerMode(true);
if(call.isMuted()) {
call.toggleMute();
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
WalkieTalkieActivity wtActivity = (WalkieTalkieActivity) context;
incomingCall = wtActivity.manager.takeAudioCall(intent, listener);
wtActivity.call = incomingCall;
...
मैं CallEnd
घटना और onChanged
प्राप्त (मैं अंत के बाद:
BroadcastReceiver
में
IntentFilter filter = new IntentFilter();
filter.addAction("android.SipDemo.INCOMING_CALL");
callReceiver = new IncomingCallReceiver();
this.registerReceiver(callReceiver, filter);
...
SipManager manager = SipManager.newInstance(this);
Intent i = new Intent();
i.setAction("android.SipDemo.INCOMING_CALL");
PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, Intent.FILL_IN_DATA);
manager.open(me, pi, null);
वर्ग यह है:
<uses-permission android:name="android.permission.USE_SIP" />
मुख्य गतिविधि onCreate
में यह है: प्रकट में यह है कॉल करें) लेकिन मुझे onRinging
ईवेंट प्राप्त नहीं होता है। क्या समस्या हो सकती है? Thnx
संपादित करें: मैं यह सब बदल दिया है। मैं इस तरह रिसीवर के लिए नए लक्ष्य फ़िल्टर डाल (बोल्ड):
<receiver android:name=".IncomingCallReceiver" android:label="Call Receiver">
**<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>**
</receiver>
और मैं बदल BroadcastReceiver इस (बोल्ड एक) की तरह वर्ग के वारिस:
@Override
public void onReceive(Context context, Intent intent) {
try {
**PhoneStateListener phoneListener=new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
// TODO Auto-generated method stub
Log.d("DEBUG", "Phone listener....");
String stateString = "N/A";
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
stateString = "Idle";
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
stateString = "Off Hook";
break;
case TelephonyManager.CALL_STATE_RINGING:
stateString = "Ringing";
break;
}
}
};**
WalkieTalkieActivity wtActivity = (WalkieTalkieActivity) context;
SipSession ses=wtActivity.manager.getSessionFor(intent);
**TelephonyManager telephony = (TelephonyManager) Context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE);**
...
अब मैं केवल निष्क्रिय अवस्था अभी भी वहाँ मिलता है लेकिन कोई रिंग नहीं है।
कोई मदद करने के लिए कोई नहीं है? कोई भी जो जानता है कि मैं कोड में गलत कहां हूं? – user1182625