ボタンを押してcall
を作成するにはどうすればよいですか? EditText
から文字列として番号を取得します。これが私のサンプルコードです:
String phone = editPhone.getText().toString();
btnPhone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
call();
}
});
public void call() {
try {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse(phone));
startActivity(callIntent);
} catch (ActivityNotFoundException activityException) {
Log.e("myphone dialer", "Call failed", e);
}
}
すべてのpermissions
をマニフェストファイルに追加しました。
しかし、私はNullPointerexception
を取得しています
この単純なアプローチはあなたのために働くはずです。
例.
public class CallActivity extends Activity{
String phone = "";
onCreate()
{
btnPhone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
phone = editPhone.getText().toString();
call();
}
});
}
public void call() {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+phone));
startActivity(callIntent);
}
}
文字列変数phone
をスコープ外で使用している可能性があります。
URIの「tel:」の部分を見逃したと思います。
以下を交換してください。
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse(phone));
startActivity(callIntent);
と
Intent callIntent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phone));
startActivity(callIntent);
または
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+phone));
startActivity(callIntent);
以下のコードを参照してください。
電話用
EditText num = (EditText)findViewById(R.id.number_edit);
String uri = "tel:" + num.trim();
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(uri));
startActivity(intent);
オープンダイヤラ用
Intent dial = new Intent();
dial.setAction("Android.intent.action.DIAL");
dial.setData(Uri.parse("tel:"));
startActivity(dial);
String PhoneNo="+923341234567"
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + PhoneNo));
startActivity(intent);
マニフェストに権限を追加します
<uses-permission Android:name="Android.permission.CALL_PHONE" />
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse(phone));
startActivity(callIntent);
上記は、Androidで電話番号を呼び出すために使用する唯一の方法です。通話ボタンをクリックすると、「dilerpad」アクティビティが入力された電話番号で開始され、ダイヤラパッドの通話ボタンを押すと通話が開始されます。
これを試して
EditText num = (EditText)findViewById(R.id.phone_number);
String uri = "tel:" + num.trim();
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(uri));
startActivity(intent);
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" +"93");
intent.setData(Uri.parse(uri));
startActivity(intent);