获取拨号器意图的 RESULT_CANCELED

我正在尝试使用拨号器意图获取结果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();

           }

          }


       }

每当我返回活动时,就会触发结果取消 Toast。


斯蒂芬大帝
浏览 128回答 2
2回答

至尊宝的传说

来自文档:ACTION_DIALpublic 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输入什么都没有,则启动一个空的拨号器;elsegetData()是要拨打的电话号码的 URI 或tel: <yourURI>显式电话号码的 URI。此外,没有RESULT_OK或的“输出” RESULT_CANCELED,因为,startActivityResult()没有任何意义,ACTION_DIAL但startActivity(intent)。希望能帮助到你。

智慧大石

为什么我得到的是 RESULT_CANCELED 而不是 RESULT_OK。ACTION_DIAL不返回结果。如果您阅读的文档ACTION_DIAL,您将看到“输出:无”。因此,您通常会得到RESULT_CANCELED. 只有设计用于使用的活动startActivityForResult()才会返回结果代码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java