我无法通过Android拨打电话。问题在于我得到的号码在地区代码周围有括号,即(206) 555 1234
。下面是我使用的代码:安卓手机通话问题
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);
}
});
下面是我得到的错误:
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)
有什么我可以做的,总之换号源?
变化数源。括号只是区域代码(在美国)为人们的分隔符。 –
就像我在我的OP中所说的,我不想更改数字源。 – BlackHatSamurai
您必须更改数字源,因为ACTION_CALL意图不能理解数字。因此,无论您是更改号码,还是可以等到Google更改Android以符合您的需求:-) – Ridcully