如何在呼叫Android时隐藏拨号号码



我想知道如何在用户从Android设备拨打任何呼叫时从屏幕上隐藏拨号号码。不想允许用户从应用程序中查看拨号号码。在我的应用中,我使用调用intent ,并且可以正常工作。但它显示默认拨号程序。如何隐藏此拨号器并从历史记录中删除数字?

您需要以下权限:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>    
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>

每当您启动呼叫意图时,您都需要启动一个正在进行的服务,该服务将注册侦听器以收听呼叫事件(以确切检测呼叫何时启动和结束)。当服务检测到传出通话开始时,它应该使用LayoutParams.TYPE_SYSTEM_ALERT窗口layoutparam放置全屏视图,这将使屏幕上其他所有内容(包括call-ui)的视图"顶部"。看到这个,这个

呼叫结束时,请确保从窗口中删除视图,还请确保如果存在错误,崩溃,或者如果服务出乎意料地存在,则删除视图,,否则您可以阻止用户从使用电话!

呼叫结束时,服务应将观察者添加到呼叫数据库中,并且当您检测到更改检查时,如果最后一个呼叫是您的呼叫,则应将观察者添加。如果是这样,请删除。

P.S 默认情况下,当您从Google Play安装应用程序时,默认情况下将授予SYSTEM_ALERT_WINDOW,在开发时,您需要在手机设置>应用程序>菜单/齿轮图标>"权限>"绘制其他应用程序">"绘制其他应用程序">启用应用程序中。对于其他权限,您可能需要使用运行时权限API

最新更新