如何使用 Kotlin 在 Android 设备中录音?

问题描述 投票:0回答:3

我想制作一个 Android 应用程序,可以在后台记录传入和传出呼叫作为 kotlin 中的服务,并在一天中的特定时间,它通过 API 将所有录音发送到服务器。我对此进行了研究,发现只是使用

Device Policy Manager
Telephoney Manager
但互联网上对此的了解不多。那么您可以帮助我提供任何文章、文档或教程吗?

android android-studio kotlin call-recording
3个回答
2
投票

目前Google还没有给出解决方案。谷歌已在其最新版本的 Android 操作系统中弃用了通话录音功能。早些时候,这是可能的,我尝试过各种方法,但当我尝试录制通话时,我只能听到无声音频。当使用 Google 的电话应用程序时,它只允许该应用程序使用麦克风和其他功能,而不允许任何其他应用程序压制并获取该硬件访问权限。

但实际上有两个技巧可以做到这一点。

  1. 构建您自己的电话应用程序(例如 Truecaller)并管理该应用程序中的每个呼叫和其他事务,通过执行此操作,您可以访问管理设备上的呼叫,并且还可以访问记录呼叫。
  2. 如果您的工作特定于任何一款移动设备,例如三星、OnePlus 等。那么您可以使用任何 Truecaller 或 Google 的手机应用程序,该应用程序会将通话录音存储在文件存储中,然后您可以提供一项服务来上传该通话每晚凌晨 12 点或其他时间从该特定文件位置进行录制。

0
投票

该项目有源代码吗?


-1
投票

首先创建MyCallRecordReceiver类

    class MyCallRecordReceiver(callRecord: CallRecord) : CallRecordReceiver(callRecord) {


    override fun onIncomingCallReceived(context: Context, number: String?, start: Date) {
        super.onIncomingCallReceived(context, number, start)
    }
}

然后在MainActivity中

class MainActivity : AppCompatActivity() {

companion object {
    private val TAG = MainActivity::class.java.simpleName
}

private lateinit var callRecord: CallRecord

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
  
    callRecord = CallRecord.Builder(this)
        .setLogEnable(true)
        .setRecordFileName("CallRecorderTestFile")
        .setRecordDirName("CallRecorderTest")
        .setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION)
        .setShowSeed(true)
        .build()

}

fun StartCallRecordClick(view: View) {
    LogUtils.i(TAG, "StartCallRecordClick")
    callRecord.startCallReceiver()

}

fun StopCallRecordClick(view: View) {
    LogUtils.i(TAG, "StopCallRecordClick")
    callRecord.stopCallReceiver()

}
}

此外,将其添加为应用程序的 build.gradle 文件中的依赖项

    allprojects {
  repositories {
    maven { url 'https://jitpack.io' }  
  }
}

还有这个

compile 'com.github.aykuttasil:CallRecorder:1.5.3'
© www.soinside.com 2019 - 2024. All rights reserved.