[實戰] Android 撥打電話

a66787237發表於2020-12-12

以前一直沒有認真研究一下打電話和發簡訊今天話了點時間搜素了一下,貼在這裡供大家參考。
 

打電話 有兩種方式:一種是獲得授權然後直接傳送或者撥打,二是交給系統呼叫預設軟體預填號碼或資訊。



先看打電話-獲得授權,直接撥打



1. AndroidManifest.xml 註冊授權

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

2, 獲得授權,如果有授權直接撥打。

        val call = ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE)
        if (call != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CALL_PHONE), REQUEST_PHONE_PERMISSION)
        } else {
            callPhone("1111111111")
        }

3. 處理授權返回

    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
        if (requestCode == REQUEST_PHONE_PERMISSION && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            callPhone("1111111111")
        } 

4. 最後callPhone

    fun callPhone(num: String) {
        val uri = Uri.parse("tel:$num")
        val intent = Intent(Intent.ACTION_CALL)
        intent.data = uri
        startActivity(intent)
    }

 

打電話,交給系統處理
 

    fun dail(context: Context?, phoneNumber: String?) {
        if (context == null || phoneNumber == null) {
            return
        }
        val intent = Intent(Intent.ACTION_DIAL)
        intent.data = Uri.parse("tel:$phoneNumber")
        context.startActivity(intent)
    }

 

相關文章