对拨号盘和短信APP的意图正在加载错误的号码

问题描述 投票:1回答:1

我正在建立一个全球特定国家的紧急服务屏幕,它们的数字通常不是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将用户发送到他们的短信应用程序时,会发生同样的问题。这个代码如下

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)
    }
android android-intent kotlin sms phone-call
1个回答
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))
        }

    }

希望这有助于某人

© www.soinside.com 2019 - 2024. All rights reserved.