如何使用打電話功能(Call)

如何使用打電話功能(Call)

情境

想要自己寫一個簡單打電話系統, 其實非常簡單
Android內建一個讓使用者非常方便的打電話方法
其實只需要利用到Intent物件就可以建立一個非常容易上手的打電話系統

程式碼說明

public class MainActivity extends AppCompatActivity {

    private final static String CALL = "android.intent.action.CALL";
    private Button callBtn;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        callBtn = (Button) findViewById(R.id.call);
        callBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent call = new Intent(CALL, Uri.parse("tel:" + "0987654321"));
                startActivity(call);
            }
        });

    }
}

一開始只要傳入Intent.ACTION_CALL常數,
以及利用Uri方法傳入電話號碼。

補充一下:其實Intent還有許多系統常數可以使用,
http://developer.android.com/reference/android/content/Intent.html

這邊要注意一下就是傳入打電話的號碼前面一定要加上小寫的”tel:”,
然後接上你要打的電話號碼, 系統才會判斷你是要打電話。
由於這個是簡單示範如何呼叫打電話函式, 因此電話號碼沒有加以判斷,
你可以自己在寫上一些判斷的方法, 避免使用者輸入錯誤的電話號碼, 例如文字…等。

記得在AndroidManifest.xml裡面加上打電話的權限

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

雖然用模擬器, 系統會變成自己打給自己是有點矛盾,
但是原理讓你了解怎麼去呼叫打電話的方法才是重點。

按下Button就可以打電話給對方了



程式碼