我想知道当用户在android设备上打电话时,如何隐藏拨号号码。不想让用户看到应用程序的拨号号码。在我的应用程序中,我使用的是调用intent,它运行得很好。但它显示的是默认拨号程序。如何隐藏此拨号程序并从历史中删除号码?
发布于 2017-12-05 07:49:26
您需要以下权限:
<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 Window LayoutParam放置一个全屏视图,这将使视图“位于”屏幕上的其他所有内容的“顶部”,包括call-UI。见这和这
当调用结束时,请确保从窗口中删除视图,并确保如果存在错误、崩溃或服务意外存在,则删除视图,否则可能会阻止用户使用!。
当调用结束时,服务应该是向CallLog数据库添加一个观察者,当您检测到更改时,检查最后一次调用是否是您的调用。如果是,删除它。
P.S默认情况下,当您从Google安装一个应用程序时,需要在您的手机设置>应用程序>菜单/齿轮图标>权限>“吸引其他应用程序”>为您的应用程序启用时手动启用SYSTEM_ALERT_WINDOW。对于其他权限,您可能需要使用运行时权限 api。
https://stackoverflow.com/questions/47626442
复制相似问题