如何找出在我的通知栏推送广告的应用程序

14次阅读
没有评论

问题描述

最近,我的手机每隔几天就会显示一个通知。Addons Detector和AirPush Detector并未发现任何相关内容。使用以下命令:

adb shell dumpsys notification

得到了以下结果:

NotificationRecord{40c413b0 pkg=com.google.android.gsf id=1 tag=null}  icon=0x1080077 / android:drawable/stat_notify_chat  contentIntent=PendingIntent{40d4f178: PendingIntentRecord{40d62628 com.google.android.gsf startActivity}}  deleteIntent=PendingIntent{40d4f148: PendingIntentRecord{40d45710 com.google.android.gsf broadcastIntent}}  tickerText=xoxbellejenxo37@jabber-chat.com wants to be able to chat  contentView=android.widget.RemoteViews@40cd0b38  defaults=0x4  flags=0x1  sound=content://settings/system/notification_sound  vibrate=null  ledARGB=0x0 ledOnMS=0 ledOffMS=0

我的问题是,除了使用Airpush Opt Out外,我还能做什么来找出是哪个应用程序在推送广告?我不想尝试Airpush Opt Out,原因有两个:
1. 我不信任这样做的人。
2. 我想找出是哪个应用程序在这样做,并将其公司/开发者添加到我的黑名单中。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

从Android 4.1 Jelly Bean开始,您可以长按通知本身。这将弹出一个菜单,其中只有一个项目,“应用信息”。点击该项目,您将直接进入有问题的应用程序管理页面,在那里您只需轻轻一触即可执行“强制停止”和“卸载”操作。

方案2

越来越多的开发者现在正在使用这些“营销”方法来推送通知,因为Google推出了他们的GCM(Google Cloud Messaging)服务。最简单的方法是问自己以下几个问题:
– 我在收到这些通知之前安装了哪些应用程序?
– 在我开始收到这些通知的时候,哪些应用程序进行了更新?
大多数情况下,您将能够根据这些问题找出是哪个应用程序在这样做,并将其卸载掉。
如果您无法从中找出问题所在,您将不得不逐个卸载应用程序,直到通知停止。如果您每隔几天只收到一次通知,这可能会很麻烦。
您也许可以通过从手机中提取logcat日志来获取更多关于哪个应用程序在这样做的信息,但我认为手机需要插入计算机,并在发生事件时观察logcat。

正文完