本例將通過Intent(意圖)調用系統撥號器實現撥打到電話的功能。
1.布局檔案
android:hint="@string/phoneHint":表示隱藏的提示資訊
android:inputType="phone":表示輸入類型為電話號碼
android:hint="@string/phoneHint" android:ems="10" android:inputType="phone" >
2.MainActivity
設定按鈕監聽事件
intent.setData(Uri.parse("tel:" + phoneNumber)):設定要傳遞的資料,Uri類型,電話號碼要加首碼“tel:”
intent.setAction(Intent.ACTION_CALL):設定Intent的動作為打電話
在Windows系統中也有類似的功能,在命令列輸入:start http://www.baidu.com,將用預設瀏覽器開啟。
<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHByZSBjbGFzcz0="brush:java;">public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);((Button)findViewById(R.id.btnCall)).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String phoneNumber = ((EditText) findViewById(R.id.etPhone)).getText().toString();//意圖:想幹什麼事Intent intent = new Intent();intent.setAction(Intent.ACTION_CALL);//url:統一資源定位器//uri:統一資源標示符(更廣)intent.setData(Uri.parse("tel:" + phoneNumber));//開啟系統撥號器startActivity(intent);}});}}3.報錯,沒有許可權 運行時發現錯誤,到LogCat中一看,發現如下錯誤:
03-22 16:58:47.263: E/AndroidRuntime(26347): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:xxx cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{41eec660 26347:com.example.call/u0a77} (pid=26347, uid=10077) requires android.permission.CALL_PHONE
在AndroidManifest.xml中添加android.permission.CALL_PHONE許可權即可
運行效果: