2012-09-27 2 views
0

Android와 통화하는 데 문제가 있습니다. 문제는 내가 받고있는 번호가 지역 번호 주변에 괄호가 있다는 사실에 있습니다. 즉 (206) 555 1234입니다. 숫자 소스를 변경의 짧은Android와 통화 문제가 발생했습니다.

09-27 10:01:45.771: E/AndroidRuntime(23422): FATAL EXCEPTION: main 
09-27 10:01:45.771: E/AndroidRuntime(23422): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.CALL dat=(206) 623-1922 } 
09-27 10:01:45.771: E/AndroidRuntime(23422): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1512) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at android.app.Activity.startActivityForResult(Activity.java:3248) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at android.app.Activity.startActivity(Activity.java:3359) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at com.uie.top25.seattle.DetailActivity$2.onClick(DetailActivity.java:94) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at android.view.View.performClick(View.java:3526) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at android.view.View$PerformClick.run(View.java:14133) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at android.os.Handler.handleCallback(Handler.java:605) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at android.os.Handler.dispatchMessage(Handler.java:92) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at android.os.Looper.loop(Looper.java:137) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at android.app.ActivityThread.main(ActivityThread.java:4697) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at java.lang.reflect.Method.invokeNative(Native Method) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at java.lang.reflect.Method.invoke(Method.java:511) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554) 
09-27 10:01:45.771: E/AndroidRuntime(23422): at dalvik.system.NativeStart.main(Native Method) 

내가 할 수 있나요 : 여기

final String phone = listdata.getPhone(); 
... 
      ImageButton phoneButton = (ImageButton) this.findViewById(R.id.phoneButton); 
      phoneButton.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View v) 
       { 
        Uri phoneNum = Uri.parse(phone); 
        Intent phoneIntent = new Intent(Intent.ACTION_CALL, phoneNum); 
        //phoneIntent.setData(); 

        DetailActivity.this.startActivity(phoneIntent); 

       } 
      }); 

내가지고있어 오류입니다 : 여기에 내가 사용하고 코드는?

+0

숫자 소스를 변경하십시오. 괄호는 사람들을위한 지역 번호 (미국 내)의 구분 기호입니다. –

+0

내 OP에서 말했듯이, 나는 번호 소스를 바꾸고 싶지 않습니다. – BlackHatSamurai

+1

ACTION_CALL 인 텐트가 다른 번호를 이해하지 못하기 때문에 번호 소스를 변경해야합니다. 따라서 번호를 변경하거나 Google이 안드로이드를 니즈에 맞게 바꿀 때까지 기다릴 수 있습니다 :-) – Ridcully

답변

2

ACTION_CALL 인 텐트가 다른 번호를 이해하지 못하기 때문에 번호 소스를 변경해야합니다. 따라서 번호를 변경하거나 Google에서 안드로이드를 필요에 맞게 변경하기 전까지 기다릴 수 있습니다.

1

다른 지역이 아닌 일부 지역에서만 작동하는 것을 조심하십시오. 이것을 고려하십시오 :

  1. 0044 (0) 123456789. 영국 국제 번호. 0과 괄호는 제거하거나 번호를 다이얼하지 않아야합니다.

  2. (0) 123456789. 영국 국가 번호. 대괄호 (0은 아님)를 제거하거나 번호를 다이얼하지 않아야합니다.

  3. (0) 123456789 미국 전화 번호이지만 지역 전화 번호입니다. 일부 지역에서는 전화가 동일한 지역에있는 경우 지역 번호를 제거해야합니다. 따라서 일부 지역에서는 123456789를 수락하고 나머지 지역에서는 456789 만 수락합니다.

그리고 계속됩니다. 일부 국가에서는 휴대 전화 번호를 처리하기가 특히 어렵습니다. 이탈리아.

E.164 사양을 조사하여 연구를 시작하십시오.

0

안드로이드가 지난 8 개월 동안이 문제를 해결하기 위해 변경되었지만 문제가 숫자의 형식이 아닌지 확실하지 않습니다. Android는 괄호, 공백 및 대시를 잘 처리합니다. 문제는 Uri에서 접두어 "tel :"가 없다는 것입니다.

Uri phoneNum = "tel:" + Uri.parse(phone); 
관련 문제