我使用app来打电话,当用户执行电话时,一切都很好,从通话开始直到通话结束,但当另一个用户拒绝电话时,第一个用户的听众没有返回任何内容,是否有关于此的任何线索/信息,真的很感激任何事情来说清楚。
答案 0 :(得分:0)
为此你需要创建一个接收你的呼叫状态的BroadcastReceiver,并使用它来实现你的另一个逻辑。
这是呼叫接收器的演示:
公共类IncomingCallReceiver扩展了BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (TelephonyManager.EXTRA_STATE_RINGING.equals(intent.getStringExtra(TelephonyManager.EXTRA_STATE))){
Log.d("mytag","call ringing");
String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
// Toast.makeText(context,incomingNumber,Toast.LENGTH_LONG).show();
}
if (TelephonyManager.EXTRA_STATE_IDLE.equals(intent.getStringExtra(TelephonyManager.EXTRA_STATE))){
String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
Toast.makeText(context,“Call Ended。”,Toast.LENGTH_LONG).show();
}
}
}
在清单文件中添加以下内容:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<receiver
android:name=".phonemidea.IncomingCallReceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>