web-dev-qa-db-ja.com

プログラムで電話をかける方法は?

バンドルで呼び出す番号をアクティビティに渡します

そして、そのようなアクティビティでは、その番号に電話するボタンがあります、これはコードです:

callButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(bundle.getString("mobilePhone")));
            }
        }); 

ボタンを押しても何も起こらないため、何かが間違っています...

私は何を間違えていますか?

PD:Android 1.5互換プロジェクトを使用しています...電話は1.5と互換性がありませんか?

112

StartActivityを呼び出すのを忘れました。次のようになります。

Intent intent = new Intent(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:" + bundle.getString("mobilePhone")));
context.startActivity(intent);

インテント自体は、単に何かを記述するオブジェクトです。何もしません。

マニフェストに関連する許可を追加することを忘れないでください:

<uses-permission Android:name="Android.permission.CALL_PHONE" />
244
Lior

私の電話でこれを試してみましたが、完全に機能します。

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

この許可をマニフェストファイルに追加します。

<uses-permission Android:name="Android.permission.CALL_PHONE" />
21
Anirudh
 Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+198+","+1+","+1)); 
             startActivity(callIntent);

複数の順序付き通話の場合

これは、DTMF呼び出しシステムに使用されます。コールがドロップする場合、数字の間にさらに「」を渡す必要があります。

13
Dwivedi Ji

選択した回答では、マシュマロ許可のチェックはありません。 Marshmallow 6.0以降のデバイスでは直接動作しません。

遅すぎることはわかっていますが、この質問には大きな票があるので、将来他の人に役立つと思いました。

マシュマロデバイスでは、呼び出しの実行時許可を取得する必要があります...

以下は、マシュマロ以上で電話をかける例です。

Android Marshmallow 6.0以降で電話をかける方法

6

そこを見てください: http://developer.Android.com/guide/topics/intents/intents-filters.html

呼び出し権を付与するためにマニフェストファイルを更新しましたか?

3
ykatchou

ここでは、アクティビティから電話をかける方法を示します。電話をかけるには、アプリにこのコードを置く必要があります。

try {
    Intent my_callIntent = new Intent(Intent.ACTION_CALL);
    my_callIntent.setData(Uri.parse("tel:"+phn_no));
    //here the Word 'tel' is important for making a call...
    startActivity(my_callIntent);
} catch (ActivityNotFoundException e) {
    Toast.makeText(getApplicationContext(), "Error in your phone call"+e.getMessage(), Toast.LENGTH_LONG).show();
}
2
Pir Fahim Shah
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); 
   final Button button = (Button) findViewById(R.id.btn_call);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            String mobileNo = "123456789";
            String uri = "tel:" + mobileNo.trim();
            Intent intent = new Intent(Intent.ACTION_CALL);
            intent.setData(Uri.parse(uri));
            startActivity(intent);
        }
    });*
 }

誰かがKotlinでを探している場合

    val  uri = "tel:"+800******
    val call_customer_service = Intent(Intent.ACTION_CALL)
    call_customer_service.setData(Uri.parse(uri))
    startActivity(call_customer_service)
0
mughil