我有一个成为默认拨号程序的应用程序。

通过使用android.telecom类,它可以很好地处理来电,接听和挂断电话

现在我想做的是,当蓝牙听筒拨打一个号码时,停止该拨号,并启动具有该相同号码的whatsapp拨号uri。

知道如何取消通过听筒拨打的电话吗?

最佳答案

您可以使用TelecomManager类来减少呼叫。

TelecomManager telecomManager = (TelecomManager) mContext.getSystemService(Context.TELECOM_SERVICE);

if (telecomManager != null) {
if(telecomManager .endCall())
Toast(mContext,"Call ended",Toast.LENGTH_SHORT).show();
else
Toast(mContext,"Failed to end the call",Toast.LENGTH_SHORT).show();
}


您需要许可

<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS" />


接收者许可

 <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />


广播接收器

public class OutgoingCallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    Log.d(OutgoingCallReceiver.class.getSimpleName(), intent.toString());
    Toast.makeText(context, "Outgoing call happening!", Toast.LENGTH_LONG).show();
 // cancel your call here    }
}


更新清单

<receiver  android:name=".OutGoingCallReceiver"
android:exported="true">
<intent-filter>
<action
android:name="android.intent.action.NEW_OUTGOING_CALL"
android:priority="0" />
</intent-filter>
</receiver>

10-08 18:36