2

当我使用以下代码从我的程序中拨打电话号码时

Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:0705352951"));
startActivity(callIntent);

我得到一个问题,我将使用什么程序来拨打电话。我想要的是我的程序只使用手机上的默认程序,跳过这个问题,这是一种方法吗?

4

3 回答 3

0

添加

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

到您的 manifest.xml

你可以看看这个:http ://wptrafficanalyzer.in/blog/call-a-number-directly-from-an-android-application/

于 2013-04-26T08:53:16.217 回答
0

您的意思是当您单击按钮拨打电话时,它会打开一个弹出窗口以选择默认应用程序?因此,您必须单击一次默认拨号器图标,然后单击下面的“仍在使用此应用程序”或类似的东西,并且弹出窗口不会再次出现!希望它会帮助某人。

于 2014-02-05T09:46:29.833 回答
0

您在这里所做的是使用一个隐式意图,该意图要求一个可以回答 CALL 操作的应用程序。如果找到几个,系统会询问用户。

为避免此阶段,您必须自己解决意图并使用显式意图。

通常,您会执行以下操作:

int flag = PackageManager.MATCH_DEFAULT_ONLY;
List<ResolveInfo> matches = getPackageManager().queryIntentActivities(intent, flag);

// This gets you a list. Typically you'll want the first item.
// However, from the doc, it is unclear if the first item is the best item or the chooser intent
ActivityInfo actualInfo = matches.get(0).activityInfo;

// Then you can create a ComponentName to make the intent explicit
intent.setComponentName(new ComponentName(actualInfo.packageName, actualInfo.name));

// and finally start your activity
startActivity(intent);
于 2013-04-26T09:17:17.803 回答