背景
我正在尝试开发一个非常简单的通话应用程序来替换库存版本.基本上,我只想回答来电并向用户展示一个非常简单的自定义UI.不需要拨出电话或任何花哨的东西.
在网上搜索我发现了包android.telecom.incallservice
(在API 23中可用).此服务由希望提供用于管理电话呼叫的用户界面的任何应用程序实现.
这似乎很有希望,但我无法让它工作.我已经创建了扩展InCallService的简单服务,并在文档描述的清单中声明它.但是,我希望能够将设置中的默认手机应用程序更改为我自己的,但我只能找到手机应用程序.
码
这是文档的清单声明.我用BIND_INCALL_SERVICE替换了BIND_IN_CALL_SERVICE,因为我猜这是一个错字.
<service androID:name="your.package.YourInCallServiceImplementation" androID:permission="androID.permission.BIND_INCALL_SERVICE"> <Meta-data androID:name="androID.telecom.IN_CALL_SERVICE_UI" androID:value="true" /> <intent-filter> <action androID:name="androID.telecom.InCallService"/> </intent-filter></service>
问题
>第三方应用甚至可以替换呼叫应用中的默认值吗?
>有没有使用此API的示例实现我可以用作参考?我找到了google implementation,但这是一个系统应用程序,它使用了一些其他应用程序无法使用的权限(例如:androID.permission.MODIFY_PHONE_STATE).
>我是否正确假设在提供正确的InCallService清单注册和存根实现后,我可以在默认应用程序下找到我的应用程序 – >电话?我需要申报其他东西吗?
谢谢.
解决方法:
根据docs,当你评论自己时,你需要在你的清单中添加它:
<service androID:name="your.package.YourInCallServiceImplementation" androID:permission="androID.permission.BIND_INCALL_SERVICE"> <Meta-data androID:name="androID.telecom.IN_CALL_SERVICE_UI" androID:value="true" /> <intent-filter> <action androID:name="androID.telecom.InCallService"/> </intent-filter> </service>
androID:name必须由实现此服务的类替换.
<activity androID:name="your.package.YourDialerActivity"> <intent-filter> <action androID:name="androID.intent.action.DIAL" /> <category androID:name="androID.intent.category.DEFAulT" /> </intent-filter> </activity>
androID:name必须由实现自己的dialer实现的主要活动的类替换.
总结Here you can find more information about this:
07001And here’s a sample project that you can use as a guIDe:
07002And this: 07003
以上是内存溢出为你收集整理的android – 替换调用应用程序全部内容,希望文章能够帮你解决android – 替换调用应用程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)