找不到可处理意图的活动 { act=android.intent.action.CALL dat=+123456789 pkg=com.android.phone },相关内容涉及IT技术。

9
当我在活动中点击按钮时,以下代码可以正常工作,但当在片段中点击按钮时会出现“没有活动可处理意图”的错误。
            Intent callIntent = new Intent(Intent.ACTION_CALL);
            callIntent.setData(Uri.parse("+123456789"));
            startActivity(callIntent);
4个回答

26

我认为你应该这样说,你要添加的数据是电话号码,像这样:

callIntent.setData(Uri.parse("tel:+123456789"));

下面是完整的解决方案:

首先,在你的 manifest.xml 中添加以下权限:

<uses-permission android:name="android.permission.CALL_PHONE" />

然后使用以下代码进行呼叫:

String phone = "+34666777888";
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel", phone, null));
startActivity(intent);

更新:

使用 ACTION_DIAL 不需要申请 CALL_PHONE 权限。


2
CALL_PHONE 权限不需要用于 ACTION_DIAL,只需要用于 ACTION_CALL。请参阅文档 - David Miguel
@DavidMiguel 我更新了答案。感谢您的评论。 - Mohammad Rahchamani

0
将以下代码添加到您的清单文件中,适用于API版本大于22.
<uses-feature
    android:name="android.hardware.telephony"
    android:required="false" />
<uses-permission android:name="android.permission.CALL_PHONE"/>

然后使用这段代码
Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:+123456789"));
        startActivity(callIntent);

-1
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:+123456789"));
        IntentChooser chooser= Intent.createChooser(callIntent,"title")
        startActivity(chooser);

希望能有所帮助。请确保在清单文件中添加了适当的权限。

-4

添加这段代码将正常工作

//string phone="034028477736"
Intent intent=new Intent(Intent.Action-dial,Uri.fromparts("tell",phone,null));
startactivity(intent);//

这是从被接受的答案中提取的编码部分。请不要只复制别人的答案。 - WhiteSpidy.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接