android基礎–撥打電話兩種方式

NO IMAGE

android基礎–撥打電話兩種方式

1.  首先在AndroidMenifest檔案里加上這個許可權:

<uses-permission android:name=”android.permission.CALL_PHONE” />

2. 實現方式

     第一種方式:

Intent intent = new Intent(Intent.ACTION_DIAL);
Uri data = Uri.parse("tel:"   "1872172xxxx");
intent.setData(data);
startActivity(intent);

這種方式的特點就是,去到了撥號介面,但是實際的撥號是由使用者點選實現的。

    第二種方式:

Intent intent = new Intent(Intent.ACTION_CALL);
Uri data = Uri.parse("tel:"   "1872172....");
intent.setData(data);
startActivity(intent);

這種方式的特點就是,直接撥打了你所輸入的號碼,所以這種方式對於使用者沒有直接的提示效果,Android推薦使用第一種方式,如果是第二種的話,建議在之前加一個提示,是否撥打號碼,然後確定後再撥打。

3.  異常現象

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.DIAL dat=15026536236 }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1792)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1512)
at android.app.Activity.startActivityForResult(Activity.java:3810)
at android.app.Activity.startActivityForResult(Activity.java:3761)
at android.app.Activity.startActivity(Activity.java:4091)
at android.app.Activity.startActivity(Activity.java:4059)

提示類找不到,出現此問題時候,要回去查詢

Intent intent = new Intent(Intent.ACTION_CALL);
Uri data = Uri.parse("tel:"   "1872172....");

這部分是否正確寫法,否則就會報錯。。

我出錯的程式碼是

Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:"  phone != null ? phone : tel));

導致此異常,,

也有的人 會忘了寫  uri.parse() 中的 tel :  ,這些都不能忽略..

 請大家記住..程式碼規範。