web-dev-qa-db-ja.com

Androidでプログラム的に番号ダイヤラパッドを開く方法は?

Androidのボタンをクリックすると、プログラムでナンバーダイヤルキーパッド(電話)を表示したいのですが。コードは直接番号ダイヤルに使用できますが、ボタンをクリックしたときにダイヤルキーパッドを表示するだけで済みます。

19
Addon_Android
Intent intent = new Intent(Intent.ACTION_DIAL); 
startActivity(intent); 
19
MrYanDao
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:9999999999"));
startActivity(intent); 

このため、AndroidManifest.xmlに権限を追加する必要はありません。

30
Kishore Kumar
Intent intent =  new Intent(Intent.ACTION_CALL_BUTTON);
startActivity(intent);

ダイヤルウィンドウチェックが表示されます ここ を参照してください

4

ボタンまたはウィジェットの例を作成します:button1

  button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent callIntent = new Intent(Intent.ACTION_DIAL);
            callIntent.setData(Uri.parse("tel:"+button1.getText().toString().trim()));
            startActivity(callIntent);

        }
    });

マニフェストに権限を追加します。

 <uses-permission Android:name="Android.permission.CALL_PHONE" />
2
Hanisha
 public void openDialPad(String phoneNumber) {
        Intent intent = new Intent(Intent.ACTION_DIAL);
        intent.setData(Uri.parse(phoneNumber));
        startActivity(intent);
    }
2

これは異なりますが、番号をクリックしてダイヤラパッドにアクセスする場合は、xmlでautolink属性を宣言します。

Android:autoLink="phone"
0
Roshan S
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel:" + phoneNumber));
 if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                // TODO: Consider calling
                //    ActivityCompat#requestPermissions
                // here to request the missing permissions, and then overriding
                //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
                //                                          int[] grantResults)
                // to handle the case where the user grants the permission. See the documentation
                // for ActivityCompat#requestPermissions for more details.
                return;
            }
startActivity(callIntent);

また、次のようにカスタムダイヤル画面をマニフェストに登録する必要があります。

<application
Android:icon="@drawable/ic_launcher"
Android:label="@string/app_name" >
<activity
    Android:name=".MyDialerApplication"
    Android:label="@string/app_name" >

    <intent-filter Android:priority="100" >
        <action Android:name="Android.intent.action.MAIN" />
         <action Android:name="Android.intent.action.DIAL" />
         <action Android:name="Android.intent.action.CALL_PRIVILEGED" />
        <category Android:name="Android.intent.category.DEFAULT" />
        <data Android:scheme="tel" />

    </intent-filter>
</activity>
0
Vinitha Edwin

非アクティビティクラスで使用する場合は、次のような関数を作成します。

_package bp;

import Android.app.Activity;
import Android.content.Intent;
import Android.net.Uri;

import session.MyApplication;

/**
 * Created by Atiar Talukdar on 7/11/2019.
 */
public class Utils {

    public static void openDialPad(Activity activity, String phoneNumber) {
        Intent intent = new Intent(Intent.ACTION_DIAL);
        intent.setData(Uri.parse("tel:" + phoneNumber));
        activity.startActivity(intent);
    }
}
_

そしてanywhareからlikeのように呼び出します:

Utils.openDialPad(getActivity(),data.getContactNo());

または

Utils.openDialPad(this,data.getContactNo());

0
Atiar Talukdar