我想知道当用户从 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"/>
每当您启动呼叫意图时,您将需要启动一个正在进行的服务,该服务将register a listener to listen to calls events(以准确检测呼叫何时开始和结束)。当服务检测到传出呼叫开始时,它应该使用LayoutParams.TYPE_SYSTEM_ALERT
Window LayoutParam 放置一个全屏视图,这将使视图在屏幕上的其他所有内容(包括呼叫 UI)上处于“顶部”。请参阅
当呼叫结束时,请确保从 Window 中删除视图,并确保如果出现错误、崩溃或服务意外存在,请删除视图,否则可能会阻止用户使用电话!
当呼叫结束时,服务应该add an Observer to the CallLog database,当您检测到更改时,检查最后一个呼叫是否是您的呼叫。如果是,delete it。
P.S默认情况下,当您从 Google Play 安装应用程序时,SYSTEM_ALERT_WINDOW
是授予的,在开发时,您需要在手机中手动启用它设置 & gt;应用程序 & gt;菜单 / 齿轮图标 & gt;权限 & gt;“在其他应用程序上绘制”& gt;为您的应用程序启用。对于其他权限,您可能需要使用
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(18条)