Получение RESULT_CANCELED для намерения номеронабирателя - PullRequest
0 голосов
/ 12 октября 2019

Я пытаюсь получить результат для намерения номеронабирателя, используя startActivityForResult()

Ниже приведен мой код для намерения номеронабирателя.

        button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_DIAL);
            intent.setData(Uri.parse("tel:123456789"));
            startActivityForResult(intent, 1234);
           }
        });

        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
          super.onActivityResult(requestCode, resultCode, data);
          if(requestCode == 1234){

           if (resultCode == Activity.RESULT_OK){
             Toast.makeText(getApplicationContext(), "result ok", Toast.LENGTH_LONG).show();
           }else if (resultCode == Activity.RESULT_CANCELED){
               Toast.makeText(getApplicationContext(), "Result Cancelled", Toast.LENGTH_LONG).show();
           }
          }

       }

всякий раз, когда я возвращаюсь к своей деятельности, тост с отмененным результатом

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 12 октября 2019

С Документ :

ACTION_DIAL

public static final String ACTION_DIAL

У вас есть только ACTION. Если вы хотите позвонить по номеру из своего приложения, вам просто нужно поместить эти строки кода в метод onClick() и получить то, что вы хотите:

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:123456789"));
startActivity(intent); // no need to use startActivityResult(intent,1234)

Здесь, если ACTION_DIAL ввод ничего не значит, пустая звонилка запущена;иначе getData() - это URI набираемого телефонного номера или tel: <yourURI> явного телефонного номера. Кроме того, отсутствует «Выход» RESULT_OK или RESULT_CANCELED, потому что startActivityResult() ничего не значит для ACTION_DIAL, но startActivity(intent). Надеюсь, это поможет.

0 голосов
/ 12 октября 2019

почему я получаю RESULT_CANCELED вместо RESULT_OK.

ACTION_DIAL не возвращает результат. Если вы прочитаете документацию для ACTION_DIAL, вы увидите «Вывод: ничего». Следовательно, вы обычно получаете RESULT_CANCELED. Только действия, предназначенные для использования с startActivityForResult(), вернут код результата.

...