android - 找不到处理 Intent { act=android.intent.action.DIAL } 的 Activity

标签 android android-intent

我想打开我的电话拨号器。但它显示错误。我已经在 Android Manifest 上声明了 CALL_PHONE 的权限,还在 Android Manifest 中声明了类。

case R.id.action_call:
Log.d("Action_call","INside Action call");
Intent dialer = new Intent(Intent.ACTION_DIAL);
startActivity(dialer);
return true;

最佳答案

ACTION_DIAL Intent 不需要任何权限。因此,从 AndroidManifest.xml 中删除 CALL_PHONE 权限。

您还没有传递任何号码来触发拨号 Intent。

使用 tel: 后跟电话号码作为传递给 Uri.parse() 的值:

试试这段代码。

 String number = "1234567890";
 Uri number = Uri.parse("tel:" + number);
 Intent dial = new Intent(Intent.ACTION_DIAL);
 dial.setData(number);
 startActivity(dial);

编辑:

您可以先检查设备是否支持电话

private boolean isTelephonyEnabled(){
    TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
    return tm != null && tm.getSimState()==TelephonyManager.SIM_STATE_READY
}

希望对您有所帮助!

关于android - 找不到处理 Intent { act=android.intent.action.DIAL } 的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32263955/

相关文章:

android动态改变文字大小

android - android的应用程序屏幕如何恢复正在运行的 Activity ?

android - 通过 Android Intent 将链接发送到 Whatsapp

Android Grade无法解析androidx.room :room-runtime:2. 4.2

android - Android 中的一个简单套接字应用程序需要一些特殊权限才能通过互联网连接吗?

android - 如何删除操作菜单项的背景?

java - Java 和 PHP 中的 SHA1 具有不同的结果

android - 我尝试在教程中的 setFlags 中使用这个标志,但它已被弃用,我该怎么办

android - 不幸的是 appName has stopped 错误

android - 注意 Honeycomb 或更高版本 Android 的外部 USB 存储的变化