【问题标题】:using android dialer in 3rd party app在 3rd 方应用程序中使用 android 拨号器
【发布时间】:2010-08-17 05:25:00
【问题描述】:

伙计们。我正在尝试为 android 构建一个 voip 应用程序。我想使用内置的 android 电话拨号器。大家能不能给我参考一下。我一直在谷歌搜索没有运气。谢谢

【问题讨论】:

    标签: android


    【解决方案1】:

    您需要做的是在您要拨打电话的Activity 上设置Intent 过滤器。您可以在 AndroidManifest.xml 文件中执行此操作。修改您的活动定义以包含此意图过滤器:

    <intent-filter>
        <action android:name="android.intent.action.CALL" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="tel" />
    </intent-filter>
    

    注意:有一些替代方法可以调用人(可以在我下面链接的源的 AndroidManifest.xml 中看到,但这是主要的

    添加此项将使用户在拨打电话时可以选择使用您的应用程序,如果用户愿意,可以将其设置为默认应用程序。

    然后,您可以通过将此代码添加到您的活动的onCreate() 方法中来获取电话号码:

    final Intent i = getIntent();
    final Uri phoneUri = i.getData();
    

    phoneUri 现在包含 tel:00000000000,您可以轻松地从 Uri object 中获取号码

    如果您以后遇到问题,请查看android source。我从phone app source 得到了这些代码,如果你想看看的话。

    【讨论】:

    • 以上对我有用。谢谢!但是我也想在拨号的时候把skype放在那个列表里,有什么办法吗?
    • 是的,确实如此。我错误地安装了Skype lite,它没有:|
    【解决方案2】:

    这应该会以新的特殊权限打开拨号器:

    Intent i = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:0000000000"));
    startActivity(i);
    

    这应该会打开已插入所需电话号码的拨号器。

    【讨论】:

    • 我正在寻找的是用户能够在拨号器上推送号码。用户按下通话后,它正在使用我的 voip 应用程序而不是 GSM 手机。就像谷歌语音是如何做到的一样。
    • 啊,我知道了,我会在另一个答案中回答
    猜你喜欢
    • 1970-01-01
    • 2014-04-14
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多