来自拨号器应用程序的 MMI 代码而不是请求

Posted

技术标签:

【中文标题】来自拨号器应用程序的 MMI 代码而不是请求【英文标题】:MMI Code from dialer app making call instead request 【发布时间】:2020-05-06 06:50:00 【问题描述】:

上下文:

我正在开发一个安卓拨号器应用程序(电话应用程序) 通过哪个应用拨号盘,完成应用通话管理。

这是我的拨号盘:

你看到 *123# 被输入

模拟市民选择:

Sim 选择底部对话框

底部对话框中正在运行什么代码:

Log.d("CALL", "to :" + dialNumber + ".. \n");
intent.setData(Uri.parse("tel:"+dialNumber));
intent.putExtra("com.android.phone.force.slot", true);

Log.d("CALL", "ACCOUNTS :" + phoneAccountHandleList.size() + ".. \n");

if (sim == 0)

    intent.putExtra("com.android.phone.extra.slot", 0);
    if (phoneAccountHandleList != null && phoneAccountHandleList.size() > 0)
    
        intent.putExtra("android.telecom.extra.PHONE_ACCOUNT_HANDLE", phoneAccountHandleList.get(0));
    
 
 else
 
    intent.putExtra("com.android.phone.extra.slot", 1);
    if (phoneAccountHandleList != null && phoneAccountHandleList.size() > 1)
    
        intent.putExtra("android.telecom.extra.PHONE_ACCOUNT_HANDLE", phoneAccountHandleList.get(1));
    

 

 context.startActivity(intent);

InCallService 管理调用:

在 InCallService 中我管理呼叫。如果添加了呼叫,则我从下面的代码启动 CallActivity

callType = CallType.CALL_OUT;

Call.Details details = call.getDetails();
String CallingNumber = details.getHandle().getSchemeSpecificPart();
CallActivity.start(this, CallingNumber, callType, false);

我的通话活动:

我有什么问题:

    你可以在上面看到我从拨号器拨打*123#,但它只是拨打*123 它一定没有启动呼叫活动,而是它必须以 MMI CODE 的形式请求它

感谢您的帮助或指导,在此先感谢您。

【问题讨论】:

【参考方案1】:

我认为你可以做到:

String encode_hash = Uri.encode("#");
intent.setData(Uri.parse("tel:"+dialNumber + encode_hash));

【讨论】:

以上是关于来自拨号器应用程序的 MMI 代码而不是请求的主要内容,如果未能解决你的问题,请参考以下文章

当请求来自浏览器或在请求来自移动设备时发送JSON字典时呈现HTML

来自本地 PHP 的 Axios GET 只是返回代码而不是执行

Kotlin 使用协程处理改造请求

(Django) AJAX 请求的 CSRF 验证在 Chrome 而不是 Firefox 中工作

“打瞌睡”的真正作用是啥?应用程序是不是应该因此而更改其代码?

微服务工程中,基础组件应用