如何通过按下按钮来制作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
答案 0 :(得分:27)
这种简单的方法对您有用。
实施例
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
超出范围。
答案 1 :(得分:10)
我认为你错过了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);
答案 2 :(得分:5)
请参阅以下代码,它可能会对您有所帮助。
致电
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);
答案 3 :(得分:3)
String PhoneNo="+923341234567"
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + PhoneNo));
startActivity(intent);
并在清单
中添加权限<uses-permission android:name="android.permission.CALL_PHONE" />
答案 4 :(得分:2)
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse(phone));
startActivity(callIntent);
以上是用于在Android中拨打电话号码的唯一方法,当您点击呼叫按钮时,“dilerpad”活动以已填充的电话号码启动,如果您按下呼叫按钮,呼叫将会转到拨号盘。
答案 5 :(得分:0)
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" +"93");
intent.setData(Uri.parse(uri));
startActivity(intent);
答案 6 :(得分:0)
试试这个
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);