Цель вызова в Android
Как я могу сделать 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
7 ответов
Этот простой подход должен работать для вас.
Ex.
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
выходит за рамки.
Я думаю, что вы пропустили часть "tel:" в URI.
Заменить следующее..
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' с перенаселенным номером телефона, и вызов будет выполняться, если вы нажмете кнопку вызова на клавиатуре номеронабирателя.
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" +"93");
intent.setData(Uri.parse(uri));
startActivity(intent);
Попробуй это
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);