如何在android上接听呼出电话并将您包括在默认应用程序列表中
当用户开始拨打电话时,android建议用户选择可以使用哪个应用程序(如Skype)拨打电话。简单的问题-我的应用程序如何在列表中,我如何获得号码,哪个用户被放在系统拨号器中 我在两个答案中都提到了所有问题,但如果客户按电话拨号板上的call,我仍然看到: 致电: -skype -电话 列表中没有我的应用程序 已编辑 现在代码的问题解决了,现在我的应用程序也在列表中并打开了:(was错误>符号) 给出空值 第二版如何在android上接听呼出电话并将您包括在默认应用程序列表中,android,Android,当用户开始拨打电话时,android建议用户选择可以使用哪个应用程序(如Skype)拨打电话。简单的问题-我的应用程序如何在列表中,我如何获得号码,哪个用户被放在系统拨号器中 我在两个答案中都提到了所有问题,但如果客户按电话拨号板上的call,我仍然看到: 致电: -skype -电话 列表中没有我的应用程序 已编辑 现在代码的问题解决了,现在我的应用程序也在列表中并打开了:(was错误>符号) 给出空值 第二版 上次我从谷歌收到通知,他们是限制呼叫特权(bcs我们不支持他们的紧急呼叫。)没有呼
上次我从谷歌收到通知,他们是限制呼叫特权(bcs我们不支持他们的紧急呼叫。)没有呼叫特权,我的应用程序不再在列表中。有人知道那件事的新解决办法吗?我现在正在与谷歌支持部门讨论这个问题,我们有一些迭代目前还没有成功。您需要做的是在您想要拨打电话的活动上设置一个意向过滤器。您可以在AndroidManifest.xml文件中执行此操作。修改活动定义以包含此意图筛选器:
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
将您的活动声明为将其添加到调用应用程序的选项列表中
<activity android:name="Makecall" >
<intent-filter>
<action android:name="android.intent.action.CALL" />
<data android:scheme="tel" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.CALL_PRIVILEGED" />
</intent-filter>
</activity>
要回答问题的第二部分,即如何从intent对象提取电话号码,您可以拨打:
String schemeSpecificPart = intent.getData().getSchemeSpecificPart();
如果要将其解析为结构化对象,可以使用Google的libphonenumber库:
乙二醇
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
TelephonyManager manager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
Phonenumber.PhoneNumber number;
try {
number = phoneUtil.parse(schemeSpecificPart, deviceCountry);
} catch (NumberParseException e) {
// handle the exception
}
我想Op正在寻找如何获取哪个用户想要拨打的号码?@prosper:对不起,我不明白你在问什么。我的想法是OP正在尝试获取用户拨打的号码。@Sahil Mahajan Mj您能再显示一点代码吗,广播接收器必须如何注册e.t.c。谢谢您的示例,您能告诉我如何提取号码吗?u代码不起作用:(@user170317:如何提取号码表示?首先确认您的活动是否在选项列表中。如果是,则从选项菜单单击您的应用程序时,您的活动是否已启动?是的,应用程序已打开。我指的是电话号码,是哪个用户在拨号板中拨号。
<activity android:name="Makecall" >
<intent-filter>
<action android:name="android.intent.action.CALL" />
<data android:scheme="tel" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.CALL_PRIVILEGED" />
</intent-filter>
</activity>
Uri numberuri = Uri.parse("tel:" + edit_text_number);
Intent intent_call = new Intent(Intent.ACTION_DIAL, numberuri);
startActivity(intent_call);
String schemeSpecificPart = intent.getData().getSchemeSpecificPart();
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
TelephonyManager manager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
Phonenumber.PhoneNumber number;
try {
number = phoneUtil.parse(schemeSpecificPart, deviceCountry);
} catch (NumberParseException e) {
// handle the exception
}