有没有一种方法来检测正在发送截获的短信的应用程序?
在我的代码中,我可以拦截传出和传入的短信,读取身体,电话号码等,但我不知道是否有一种方法来检测发送短信的应用程序 / 包。我搜索过,但没有运气。提前感谢。我正在使用的库来拦截短消息:
Sms Radar on GitHub请注意,我不是在谈论应用程序这是默认的消息传递应用程序。有时其他应用程序如 WhatsApp 发送短信来验证用户。这些类型的短信不会在发件箱 / 发送的消息中可见,尽管我可以在发送 / 接收时检测到它们。
所以我只想知道到底是哪个应用程序(包名)现在发送短信。
AFAIK 您无法检测哪个应用程序正在发送 SMS。它只是没有保存在内容存储中。
但是,您可以使用容易出错的解决方法:
列出当前运行的所有应用程序,这些应用程序在发送 SMS 时具有 SEND_SMS 权限(也可能具有 Internet 权限)。
另一种(未经测试)的方式可能是使用Thread.currentThread().getStackTrace()
通过迭代返回的数组读取 onSmsSent()中的堆栈,直到您到达可以发送 SMS 的应用程序。但我想这不会工作,因为 Android 最有可能对内容存储所做的任何更改。
所以我只是得到了前台进程的列表,当我的 onSMSSent () 被调用并找到正在发送 SMS 的应用程序,在列表的顶部。
虽然这可能不是一个坚实的解决方案,但正如 @ Ch4t4r 所说,似乎没有解决方案可以直接获取短信发送应用程序,并且技巧听起来足够好。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(44条)