如何以编程方式从iPhone SDK执行以下操作:
以编程方式通过iPhone SDK拨打电话号码
绕过iPhone显示的拨号/取消提示
拨号后发送额外的DTMF,就像您将暂停编程到普通电话中一样.
我知道你可以tel://
拨打电话,但问题是它会调出拨号/取消提示,之后会阻止任何未来的DTMF被发送.
我一直致力于一个可以从调用流修改中获益的项目.这已被反复说/假设无法实现,因为大多数人认为通话音频的硬件环路完全与设备的主MCU断开连接.
像流音频到Android电话的问题Android已收到答案,说明无法访问音频.我同意Android API绝对不可能,但是完全断开硬件ACTUALLY是完全断开的还不完全清楚.
stackoverflow用户'artsylar'表示他们能够修改Android操作系统的"框架层",将录制的音频注入呼叫流,这将是一个巨大的进步(请参阅播放音频片段到正在进行的通话,artsylar的评论选定的答案).假设artsylar的成功是有效的,那么肯定有一种方法可以通过修改框架来控制调用流音频(我假设Android源中的电话基础框架).
基本上,我完全同意从应用程序层修改或控制调用流是不可能的.但是,我有兴趣在框架或无线接口层中自定义Android OS; artsylar似乎取得了成功,但在开放文献中没有解释如何.鉴于Android技术的当前状态,是否有人可以通过修改核心Android操作系统来明确上述内容以确定是否可以控制通话音频,以及实现此目标的良好途径?
我相信对这个问题的最后澄清对开源社区具有重要价值.
谢谢!
我正在尝试使用带有tel
*的网址在iPhone上发起呼叫.它会正确显示调用对话框,但在您单击调用时会回退到safari.
<a href="tel:123*12">Test</a>
Run Code Online (Sandbox Code Playgroud) 我想创建一个按钮,当按下该按钮时,将拨打iPhone上的电话号码.我不知道这是否可行,但如果是的话,我会爱上某人来帮助我.
我没有任何代码,所以有人需要从头到尾帮助我.
我环顾四周,我能找到的就是检查CTCallCenter的callState.但是,这可以通过监听事件来实现 - 根据应用程序是处于活动状态还是暂停/恢复事件,可以在不同时间引发事件.
我需要的不是听事件,而是在连接呼叫时被告知,我想决定自己何时询问呼叫是否已连接.
使用案例:当连接电话时 - 用户知道并将始终点击应用程序图标,这将打开应用程序.这时我只想运行一个快速功能来检查当前是否正在通话.
这甚至可能吗?
我正在使用自动呼叫记录器应用程序,我能够在android 6下面使用记录语音呼叫MediaRecorder.AudioSource.VOICE_CALL
,从android 6无法使用VOICE_CALL记录语音呼叫.我设法录音使用,MediaRecorder.AudioSource.MIC
但这里传入的声音没有被记录,我想在正常模式下录制语音通话,而不是在扬声器模式下.请帮帮我.(我曾尝试过Xiomi Redmi 4a(机器人6),没有工作).
myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
myRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
myRecorder.setMaxDuration(60 * 60 * 1000);
AudioManager audiomanager =
(AudioManager)getSystemService(AUDIO_SERVICE);
audiomanager.setMode(2);
Run Code Online (Sandbox Code Playgroud)
编辑:权限没有问题.
更新:任何人都知道如何强制另一个流到MIC音频源.这需要原生的android代码.请帮我解决此 问题.有关路由音频的详细信息,请参阅此问题
我们收到了playStore的政策通知:
您的应用清单请求呼叫记录权限组(例如READ_CALL_LOG,WRITE_CALL_LOG,PROCESS_OUTGOING_CALLS)
必须将其主动注册为设备上的默认电话或助理处理程序.
我无法理解设备上的助理处理程序.任何意见或建议都是最受欢迎的.
android应用程序满足要求的最低要求是什么.
我正试图让我的应用程序从EditText调用一个数字,但我得到:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.DIAL dat=Ring Tel nr. 123456789 }
Run Code Online (Sandbox Code Playgroud)
我已经搜索了一段时间以获得答案,但大多数答案都是权限并向Manifest添加活动.我做过两件事,如果我做错了.我在手机上运行它,而不是模拟器.我曾尝试使用和不使用intent-filters.以下是代码:清单:<uses-permission android:maxSdkVersion="19" android:name="android.permission.CALL_PHONE"/>
<activity
android:name="nu.sluggo.testapp.annons.Activity2">
<intent-filter>
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
拨打电话的按钮(从SharedPrefs获取电话号码到下面的a1 :)
knapp_ring.setOnClickListener(new View.OnClickListener() {
Intent call = new Intent(Intent.ACTION_DIAL);
@Override
public void onClick(View v){
call.setData(Uri.parse("Telnr:" + a1));
startActivity(call);
}
});
Run Code Online (Sandbox Code Playgroud) android phone-call phone-number android-intent android-permissions
这个问题可能似乎是以下问题的重复:
如何在Android
背景音频中为语音呼叫播放音频文件以
进行正在进行的呼叫 - 可能吗?
这些问题的答案表明,在Android中的语音通话中无法播放预先录制的音频.我想知道为什么不可能?有什么限制(硬件/软件)?这是真的有限还是故意做的?我们可以改变android的源代码以使其成为可能吗?
我知道以前曾经问过这个问题,但此时这个帖子的回答并不正确.Vringo和其他应用程序通过按下应用程序上的按钮来接听电话,因此必须有办法实现.
有人有建议吗?
phone-call ×10
android ×6
ios ×4
audio ×2
iphone ×2
native ×2
android-ndk ×1
cocoa-touch ×1
html ×1
objective-c ×1
phone-number ×1
url-scheme ×1
xcode ×1