2017-01-21 8 views
0

私たちは、あなたがこのコードを使用して通話アプリケーションを開くことができます知っている:ダイレクトコールは可能ですか?

startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:0377778888"))); 

それは、デバイスのデフォルトのアプリケーションを経由せず、直接電話をかけることは可能ですか?あなたがACTION_CALLを探している

+0

http://stackoverflow.com/questions/15842328/android-intent-action-call-uri –

答えて

2

このコードスニペットは、直接呼び出しを行います:

// Check the SDK version and whether the permission is already granted or not. 
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { 
    requestPermissions(new String[]{Manifest.permission.CALL_PHONE}, PERMISSIONS_REQUEST_PHONE_CALL); 
} else { 
    //Open call function 
    String phone = "7769942159"; 
    Intent intent = new Intent(Intent.ACTION_CALL); 
    intent.setData(Uri.parse("tel:+91" + phone)); 
    startActivity(intent); 
} 

は、マニフェストにこの権限を使用します。

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

+0

の許可

ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED 

を確認するには許可

ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.CALL_PHPNE}) 

を要求するために それはそれだった。ありがとうございました! – Viana

1
Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phno); 
startActivity(intent); 

Androidのマニフェスト

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

はい、Intent.ACTION_DIALをコード内でIntent.ACTION_CALLに置き換えるだけで解決できます。 アプリに対してCALL権限が必要です。 マーシュマローデバイスの場合、マニフェストタグ

<uses-permission android:name="android.permission.CALL_PHONE" />の下にマニフェストに次の行を挿入するだけで簡単に行えます。

しかし、マシュマロのためか、

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

以下のようなマニフェストの許可を宣言する必要があり、CALL_PHONEアクセスするためのユーザーランタイム許可を求める必要があるOSデバイス上で。詳細https://developer.android.com/training/permissions/requesting.html

関連する問題