我试图使用Intent.Action类。 我知道如何使用ACTION_VIEW显示URL,但我想用Intent.ACTION_DIAL
拨打号码时,应用程序启动。 该文件说,你需要解析URI成一个字符串,然后把它添加到我尝试这样做的意图:
Uri call = Uri.parse("7777777777");
Intent surf = new Intent(Intent.ACTION_DIAL, call);
startActivity(surf);
这不工作,我得到一个错误消息说:
不幸的是,项目已经停止。 我试着调试代码,它似乎指向我的原意不知道我做错了,如果我只是做它的工作原理,并提出了拨号器。
//Uri call = Uri.parse("7777777777");
Intent surf = new Intent(Intent.ACTION_DIAL);
startActivity(surf);
Answer 1:
联系电话
String number = "23454568678";
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" +number));
startActivity(intent);
使用许可
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
Answer 2:
刚打开拨号程序的应用程序(用户必须按拨号应用程式内呼叫按钮;不需要额外的权限)使用方法:
String number = "7777777777";
Uri call = Uri.parse("tel:" + number);
Intent surf = new Intent(Intent.ACTION_DIAL, call);
startActivity(surf);
要打开拨号程序,并自动(需要android.permission.CALL_PHONE)做在呼叫时使用:
String number = "7777777777";
Uri call = Uri.parse("tel:" + number);
Intent surf = new Intent(Intent.ACTION_CALL, call);
startActivity(surf);
Answer 3:
试试这也
Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phno);
startActivity(intent);
Android清单
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
Answer 4:
试试这个
String url="tel:777777777"
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL,
Uri.parse(url));
startActivity(intent);
}
添加到您的AndroidManifest.xml文件
<uses-permission android:name="android.permission.CALL_PHONE" />
Answer 5:
试试这个
String no = "536171839";
Intent callintent = new Intent(android.intent.action.CALL);
callintent.setData(Uri.parse("tel:" +no));
startActivity(callintent);
添加到您的AndroidManifest.xml文件
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
Answer 6:
另一种方法是作出的PendingIntent稍后调用。 这是特别是当你想给用户直接从通知操作重定向到电话UTIL。
String number = "551191111113";
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" +number));
PendingIntent pendingIntentForCall = PendingIntent.getActivity(mContext, 0 /* Request code */, intent,PendingIntent.FLAG_ONE_SHOT);
您可以在通知如下使用它:
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(mContext)
.setContentTitle(title)
.setContentText(message)
.setStyle(new NotificationCompat.BigTextStyle().bigText(message))
.setTicker(tickerText)
.setColor(Color.BLACK)
.setLargeIcon(BitmapFactory.decodeResource(mContext.getResources(), R.mipmap.ic_directions_bus_white_48dp))
.setSmallIcon(R.mipmap.ic_directions_bus_white_24dp)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.addAction(new NotificationCompat.Action(R.mipmap.ic_directions_bus_white_24dp,"Call to " + number,pendingIntentForCall));
Answer 7:
试试这个 :
String toCall = "tel:" + number.getText().toString();
startActivity(new Intent(Intent.ACTION_DIAL,
Uri.parse(toCall)));
Answer 8:
如果u有加
<uses-permission android:name="android.permission.CALL_PHONE" />
检查通话的电话上同意您的应用程序。
Answer 9:
对于ACTION_DIAL你只需要创建Intent对象与动作作为第一个参数,Uri对象从作为字符串写入电话号码建立了第二个参数。 此后只是调用startActivity()
方法和通过先前创建的意图对象作为参数。 例如:
private String phoneNumber = "123456";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button dial_number = findViewById(R.id.button);
dial_number.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phoneNumber));
startActivity(intent);
}
});
}
文章来源: Android Intent.ACTION_CALL, Uri