实现拨打电话的功能,实现代码如下:

 // 权限请求码  
private val REQUEST_CALL_PHONE = 100  
private fun dialPhoneNumber(phoneNumber: String) {  
        val intent = Intent(Intent.ACTION_CALL)  
        intent.data = Uri.parse("tel:$phoneNumber")  
  
        if (intent.resolveActivity(requireContext().packageManager) != null) {  
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {  
                if (ContextCompat.checkSelfPermission(requireContext(),  
                        android.Manifest.permission.CALL_PHONE)  
                    != PackageManager.PERMISSION_GRANTED) {  
  
                    ActivityCompat.requestPermissions(requireActivity(),  
                        arrayOf(android.Manifest.permission.CALL_PHONE),  
                        REQUEST_CALL_PHONE)  
                } else {  
                    startActivity(intent)  
                }  
            } else {  
                startActivity(intent)  
            }  
        } else {  
            Toast.makeText(requireContext(), "无法拨打电话", Toast.LENGTH_SHORT).show()  
        }  
    }  
  
    override fun onRequestPermissionsResult(  
        requestCode: Int,  
        permissions: Array<out String>,  
        grantResults: IntArray  
    ) {  
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)  
        if (requestCode == REQUEST_CALL_PHONE) {  
            if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {  
                dialPhoneNumber("1234567890") // 替换成你想拨打的电话号码  
            } else {  
                Toast.makeText(requireContext(), "拨打电话权限被拒绝", Toast.LENGTH_SHORT).show()  
            }  
        }  
    }  
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐