簡體   English   中英

為撥號器意圖獲取 RESULT_CANCELED

[英]Getting RESULT_CANCELED for Dialer Intent

我正在嘗試使用startActivityForResult()獲取撥號器 Intent 的結果

下面是我的撥號器意圖代碼。

        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();
           }
          }

       }

每當我返回我的活動時,都會觸發 Result Canceled Toast。

提前致謝。

為什么我得到 RESULT_CANCELED 而不是 RESULT_OK。

ACTION_DIAL不返回結果。 如果您閱讀ACTION_DIAL的文檔,您將看到“輸出:無”。 因此,您通常會得到RESULT_CANCELED 只有設計用於startActivityForResult()的活動才會返回結果代碼。

來自文檔

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_OKRESULT_CANCELED的“輸出”,因為startActivityResult()ACTION_DIAL沒有任何意義,而是startActivity(intent) 希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM