意向拨号盘和SMS APP加载了错误的号码

时间:2018-08-30 17:09:34

标签: android android-intent kotlin sms phone-call

我正在建立一个屏幕,其中包含来自全球特定国家/地区的紧急服务,其电话号码通常不超过10位数字, 示例:Australia = 13 11 14UK plus ROI = 116 123

我希望用户单击这些数字,然后将其带到拨号盘上,无论其语言环境如何。 这是我到目前为止的内容:

fun openDialApp(phoneNumber: String) {
        val dialIntent = Intent(Intent.ACTION_DIAL)
        dialIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
        dialIntent.data = Uri.parse("tel:" + Uri.encode(phoneNumber))
        startActivity(context, dialIntent, Bundle.EMPTY)
    }

此代码确实将用户带到拨号盘,但是它输入的号码完全不同。调试之后,似乎有一些改变,将数字从字面上的字符串更改为其他随机生成的数字。有什么想法为什么会这样吗?

当我尝试通过American helpline number = 741741将用户发送到他们的SMS应用程序时,发生相同的问题。的代码如下

fun openSmsApp(smsNumber: String) {
        val smsIntent = Intent(Intent.ACTION_SENDTO)
        smsIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
        smsIntent.data = Uri.parse("smsto:" + Uri.encode(smsNumber))
        startActivity(context, smsIntent, Bundle.EMPTY)
    }

1 个答案:

答案 0 :(得分:0)

我发现问题是我正在获取ID而不是实际号码:

以下是之前的代码:

private fun bindViews() {
        header.leftIconView.clicks().bindToWithDispose(disposables) {
            viewModel.goBack()
        }

        lifelineAustraliaNumber.clicks().bindToWithDispose(disposables) {
            viewModel.openDialApp(R.string.lifeline_australia_number.toString())
        }
        mentalHealthAmericaTextNumber.clicks().bindToWithDispose(disposables) {
            viewModel.openSmsApp(R.string.mental_health_america_text_number.toString())
        }

        samaritansNumber.clicks().bindToWithDispose(disposables) {
            viewModel.openDialApp(R.string.samaritans_number.toString())
        }

    }

以下是以下代码:

 private fun bindViews() {
        header.leftIconView.clicks().bindToWithDispose(disposables) {
            viewModel.goBack()
        }

        lifelineAustraliaNumber.clicks().bindToWithDispose(disposables) {
            viewModel.openDialApp(context.resources.getString(R.string.lifeline_australia_number))
        }
        mentalHealthAmericaTextNumber.clicks().bindToWithDispose(disposables) {
            viewModel.openSmsApp(context.resources.getString(R.string.mental_health_america_text_number))
        }

        samaritansNumber.clicks().bindToWithDispose(disposables) {
            viewModel.openDialApp(context.resources.getString(R.string.samaritans_number))
        }

    }

希望这对某人有帮助