Adn*_*had 4 android call phone-call telephonymanager
我正在制作一个应用程序,它以编程方式接受来电,而不是默认的呼叫应用程序。tm.acceptRingingCall()在 Android 9 及更低版本中使用和更容易实现tm.endCall。不幸的是,从 Android 10 开始,这些方法已被弃用。根据文档,可以使用InCallServiceAPI 来完成。但是,如果不成为默认呼叫应用程序,是否可以做到这一点?
不幸的是,答案是否定的。从 Android 10 开始,处理电话的唯一方法是使用 API InCallService。我用java制作了一个基本的拨号器应用程序,它解释了如何作为默认拨号器应用程序处理呼叫的基础知识(链接: https: //github.com/adnan-creator/java-custom-dialer)。因此,目前最好的解决方案是成为默认拨号器应用程序,直到您需要以编程方式接受或拒绝呼叫的功能。然后您可以将控件转移回内置拨号器应用程序。
这可以通过在使用 进行控制之前首先存储内置拨号器的包名称来完成
telecomManager.getDefaultDialerPackage()。
然后可以将控制权传回内置拨号器应用程序
Intent intent = (new Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER))
.putExtra(
TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME,
storedPackageName);
this.startActivityForResult(intent, REQUEST_CODE_SET_DEFAULT_DIALER);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3874 次 |
| 最近记录: |