Ошибка передачи # в качестве ввода в приложении для набора номера - PullRequest
1 голос
/ 13 февраля 2020

Я создаю android приложение для набора номера, но когда мой ввод содержит строку формы * 123 #, набираемый номер - * 123. Как я могу передать # также в приложении номеронабирателя? Ниже приведен код:

 public void onDial(View v) {
    if (input.getText().length() <3) {
        Toast.makeText(this, "Please Enter the Valid Number", Toast.LENGTH_SHORT).show();
    } else {
        Intent intent = new Intent(Intent.ACTION_CALL);
        String hash = input.getText().toString();
        if (hash.contains("#")) {
            hash.replace("#", "%23");
        }
        intent.setData(Uri.parse("tel:" + hash));

        if (ActivityCompat.checkSelfPermission(this,Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
            startActivity(intent);
        }else{
            requestCallPermission();
        }
}
}

1 Ответ

0 голосов
/ 13 февраля 2020

Ты где близко! Кодирование будет работать, но метод replace возвращает новую строку! : -)

   if (hash.contains("#")) {
        hash = hash.replace("#", "%23"); // Need to set the hash reference to the new string generated by replace()!
    }
    intent.setData(Uri.parse("tel:" + hash));

Ссылки:

http://zetcode.com/kotlin/strings/

Как использовать Uri.parse () с # на конец

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...