使用 Kotlin Android Studio 拨打电话

Posted

技术标签:

【中文标题】使用 Kotlin Android Studio 拨打电话【英文标题】:Making a phone call with Kotlin Android Studio 【发布时间】:2019-08-10 08:59:36 【问题描述】:

我正在尝试使用 Kotlin 在 android Studio 中拨打电话;目的是拨打墨西哥的紧急电话“911”。当我按下通话按钮时,应用程序只显示电话号码(手机本机应用程序中的“911”)而不是自动呼叫。一开始我以为是因为“Intent”,然后我用“+”或“(52)44..”更改了数字,它成功了!我不知道可能是什么问题。

权限: <uses-permission android:name="android.permission.CALL_PHONE"/>

代码:

imageLlamada.setOnClickListener(

                makePhoneCall("911")


            )

    fun makePhoneCall(number: String) : Boolean 
    try 
        val intent = Intent(Intent.ACTION_CALL)
        intent.setData(Uri.parse("tel:$number"))
        startActivity(intent)
        return true
     catch (e: Exception) 
        e.printStackTrace()
        return false
    

【问题讨论】:

【参考方案1】:

您需要CALL_PRIVILEGED 权限才能拨打紧急电话。

http://developer.android.com/reference/android/Manifest.permission.html#CALL_PRIVILEGED

允许应用拨打任何电话号码,包括紧急电话号码 号码,无需通过用户的拨号器用户界面 确认正在拨打的电话。

【讨论】:

这是我尝试使用 CALL_PRIVILEGED 时得到的结果:具有保护级别签名、特权或签名或系统的权限仅授予系统应用程序。如果一个应用是普通的非系统应用,它将永远无法使用这些权限。 ***.com/questions/13801984/… 你知道我是否必须将 CALL_PRIVILEGED 添加为“使用权限”标签吗?因为我已经做到了,而我的呼叫按钮没有做任何事情。另外,我检查了“权限仅授予系统应用程序”,我这样做了,但它不起作用。

以上是关于使用 Kotlin Android Studio 拨打电话的主要内容,如果未能解决你的问题,请参考以下文章

Android@Kotlin 在Android studio 中配置Kotlin

Android@Kotlin 在Android studio 中配置Kotlin

Android@Kotlin 在Android studio 中配置Kotlin

android studio怎么用kotlin

Android Studio不更新到最新版使用Kotlin

Android首要开发语言:架构师详解在Android Studio上使用Kotlin