我想创建一个将执行以下操作的 android 应用程序
捕获/监听来电事件(我知道这一步在 SO 上可能有重复,但为了完整起见,我问)
接管控制权并点击网络服务 (HTTP POST) 以从互联网获取一些信息
并在“调用接收/拒绝按钮”顶部显示与“警报小部件”相同的内容,通常是我们获得联系人“面孔”的地方。
基本问题是,在普通 android 上开发这样的应用程序是否可行?如果是,怎么办? 如果有的话,后果是什么?
该解决方案也应该适用于最新的 Android 版本(从 2.3 开始,2.3 有一个有争议的补丁,它破坏了依赖于 android 的私有(private)电话 api 的应用程序)
http://developer.android.com/reference/android/content/BroadcastReceiver.html指出,
In particular, you may not show a dialog or bind to a service from within a BroadcastReceiver. For the former, you should instead use the NotificationManager API. For the latter, you can use Context.startService() to send a command to the service.
最佳答案
对于 1) 部分,您可以创建一个 BroadcastReceiver并聆听
TelephonyManager#ACTION_PHONE_STATE_CHANGED action.
这将处理您的调用事件。
对于 2) 部分需要写一个 AsyncTask执行 HttpPost对您的网络服务采取行动。网上有许多关于如何执行 HttpPost 操作的教程。
现在,每当你实现一个 AsyncTask 时,你都有一个 onPostExecute方法。在该方法中,您可以使用警报对话框执行显示的第三部分。
希望对你有帮助
一切顺利
干杯
关于java - 捕获来电并点击 Web 服务并在 Android 的 "call receive reject panel"上显示响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8486778/