【问题标题】:How to make my own custom dialer in an Android phone如何在 Android 手机中制作我自己的自定义拨号器
【发布时间】:2012-04-24 17:41:39
【问题描述】:

在我的应用程序中,我添加了一个意图,以便用户可以调用:

str="tel:"+phoneArray[11];  
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(str));
startActivity(intent);

然后它从 Android 手机调用,但我想设置另一个外观不同的自定义拨号器。需要做什么?我不是说如何设计拨号器,而只是如何制作一个可以输入号码并执行呼叫的 UI。

【问题讨论】:

标签: android android-layout android-intent


【解决方案1】:

创建一个响应Intent.ACTION_DIAL 的应用。在 AndroidManifest.xml 中,您需要将以下内容添加到该 Activity:

<intent-filter>
    <action android:name="android.intent.action.DIAL" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

您可以参考official phone app。但请注意,这不是一项简单的任务。

这种方式只能更换拨号器。实际调用对象(您在调用期间看到的内容)无法更改。

有关更多信息,请参阅堆栈溢出问题Android dialer application

【讨论】:

  • 这个场景怎么样:我有带有身份验证的 Web 服务,它能够通过 VoIP 平台在两个号码之间发起呼叫。它接受的两个参数是调用者和被调用者号码。拥有一个具有响应 DIAL 意图的活动的应用程序就足够了吗?我假设一旦我点击电话簿上的号码,Android 就会让我设置我想使用哪个应用程序进行拨号......?如果是这样...我如何将此号码从电话簿传递给我的活动?
【解决方案2】:

如果您想完全替换现有的电话拨号器并在您的应用程序中管理呼叫,那么答案是,除非在您在更改 android 源代码后用您的默认拨号器替换默认拨号器后构建的自定义 ROM 上,否则无法做到这一点拥有。

【讨论】:

  • @arekolek 如果将 simple-phone 翻译成 普通的 java,那就太好了。我曾尝试从 Menu > Tools > Kotlin -> Decompile Kotlin to Java 将 Kotlin 反编译为 Java,但我没有成功,因为我没有足够的知识来做到这一点。反编译代码时,有一些额外的代码在普通java中是不支持的。
  • @AlitonOliveira 有一些 Java 分支,例如 github.com/Abror96/CustomPhoneDialer
  • 关于 compileClasspath' 出现编译错误:无法解析 org.jetbrains.kotlin:kotlin-stdlib:1.2.31。缺少此命令:implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.21"
【解决方案3】:

您可以在实际电话呼叫出现时对其进行叠加。有很多这样的手机皮肤应用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多