有没有办法检测发送截获短信的应用程序?
在我的代码中,我可以拦截传出和传入的短信、读取正文、电话号码等,但我不知道是否有办法检测发送短信的应用/程序包。我已经搜索过但没有运气。 提前致谢。 我正在使用以下库来拦截短信:
请注意,我不是在谈论作为默认消息传递应用程序的应用程序。有时,WhatsApp 等其他应用程序会发送短信来验证用户身份。这些类型的 SMS 在发件箱/已发送消息中是不可见的,尽管我可以在发送/接收时检测到它们。
所以我只想确切地知道哪个应用程序(程序包名称)正在发送短信。
最佳答案
据我所知,您无法检测到哪个应用正在发送短信。它只是没有保存在内容存储中。
但是,您可以使用一个容易出错的解决方法:
在发送 SMS 时列出当前运行的所有具有 SEND_SMS 权限(可能也具有互联网权限)的应用。
另一种(未经测试的)方法可能是使用 Thread.currentThread().getStackTrace()
读取 onSmsSent() 中的堆栈,方法是遍历返回的数组,直到到达可以发送的应用程序短信。但我猜这行不通,因为 Android 最有可能代理对内容存储所做的任何更改。
关于Android,检测哪个应用程序正在发送短信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45669846/