3

我只想打开android设备的电话应用程序。我不想为该应用程序提供电话号码。只是想打开它。
我正在使用电话应用程序的包名称来打开它。因为我可以使用下面的代码通过该包名称打开我想要的任何应用程序。

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.android.contacts"); startActivity(launchIntent);

我无法使用上述代码打开电话联系人应用程序。可能是什么问题?

4

2 回答 2

23

Intents旨在为您提供一种更通用的方式来访问诸如打开文件之类的操作。如果你必须指定你想做的任何事情的包,这将是非常有限的。但是,这里有一些可能是您所追求的意图。

//For the contacts (picking one)
 Intent i = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
//For the contacts (viewing them) 
 Intent i = new Intent(Intent.ACTION_VIEW, ContactsContract.Contacts.CONTENT_URI);
//For the dial pad
 Intent i = new Intent(Intent.ACTION_DIAL, null);
//For viewing the call log
 Intent i = new Intent(Intent.ACTION_VIEW, CallLog.Calls.CONTENT_URI);

在某个地方为自己创建一个useful intents文件以节省您将来的时间,有一天您会感谢我的。

当然,要开始这些意图,你会startActivity(i);为除第一个之外的所有意图,因为你希望联系回来并且你需要startActivityForResult(i);,但那是另一回事了。

于 2012-05-24T07:03:16.133 回答
2

公共静态最终字符串 ACTION_DIAL

自:API 级别 1 活动操作:拨打数据指定的号码。这显示了一个带有正在拨打的号码的 UI,允许用户明确发起呼叫。输入:如果没有,则启动一个空拨号器;

来源:http: //developer.android.com/reference/android/content/Intent.html#ACTION_DIAL

http://developer.android.com/reference/android/content/Intent.html#ACTION_CALL也可能是您正在寻找的。

如果您想从 Activity 开始通话,只需使用Activity 上下文中的http://developer.android.com/reference/android/content/Context.html#startActivity(android.content.Intent )。

于 2012-05-24T07:10:33.963 回答