禁用图书馆的通知功能

4

我能否阻止一个额外的jar库发送任何通知?

我是一名独立游戏开发者,最近被一家出版商联系,希望与我合作。条款还可以,现在我需要将他们的广告SDK集成到游戏中,但我担心他们可能会使用通知广告,这违反了开发者政策(http://play.google.com/intl/en/about/developer-content-policy.html 广告政策3:“...广告不得模拟或冒充系统通知或警告。”)。我不想冒险让我的出版商账户被封锁。

3个回答

3
据我所知,目前没有直接拦截应用程序中 Notification 显示的方法。
但是从我的经验来看,如果您需要集成一个广告软件开发工具包(advertising-sdk),为了能够显示/接收通知,他们通常会在 AndroidManifest.xml 中注册 <receivers> 或要求各种 <permissions>。为此,您需要在应用程序中添加这些实际的 <receivers><permissions>,因此,如果您不声明这些内容,则可能会导致触发 Notifications 的可能的 Receivers 无法正常工作。
如果您知道它们在应用程序启动时会启动或触发某些 Notifications... 您可以使用 NotificationManager.cancelAll() 来取消它们。
另外,我可能会做的另一件事是获取他们的源代码,并检查他们是否有什么“恶意”行为。如果有... 尝试打破它或其他操作。

SDK不需要任何特殊权限,我只需在应用程序启动时通过一个方法进行初始化。我看到这些通知发生的方式是在应用程序关闭很长时间之后,因此在启动时调用cancelAll并不能帮助解决问题。提供源代码会更好,但我只收到了一个JAR文件。 - Björn Kechel

1
如果您不信任此JAR的提供者,请不要将他的代码放在用户设备上。显示通知只是他可能会做的许多恶意行为之一。也许您会捕获他的通知,但您没有意识到他正在秘密收集用户的敏感信息以通过互联网传输。也许他在您的应用程序面向儿童时向用户展示色情广告。也许他使用用户的设备作为僵尸网络的一部分或通过挖掘比特币来消耗用户的电池电量。您无法检测到这些事情中的任何一件。

您必须让库的作者描述其库的行为,并书面承诺它所做或不做的事情。如果他不愿意这样做,或者您不信任他遵守此协议,请记住,您对您的应用程序包含的任何恶意软件负责。特别是我倾向于不相信通过Google Play列出的地址发电子邮件的广告网络:其中许多都不值得信任,而Airpush则是最糟糕的垃圾邮件发送者。


感谢您对开发人员应该做什么的建议。在这种情况下,我拒绝使用他们的SDK在我的账户下发布,而是使用推广者的账户,导致他们冒着风险使用自己的出版商账户。但我仍然想知道是否有技术上的可能阻止第三方库发送通知。不幸的是,目前看来情况并不乐观。 - Björn Kechel

0

这些库需要一个后台服务来在您的应用中显示推送广告。通常,您需要将类似以下内容添加到清单文件中:

<service android:name="com.adnetworksdk.AdService" >
<intent-filter>
<action android:name="com.adnetworksdk.AdServicecom.yourapp.packagename" />
</intent-filter>
</service>

如果您的清单中没有这个,当您的应用程序未运行时,没有任何东西可以运行,因此无法发送推送广告。
如果您真的想检查,请使用JD-GUI反编译JAR并查看源代码。它可能已经混淆了,但您应该能够看到它在做什么。将JAR反编译为可读的Java非常容易。

通常情况下,应用程序在关闭时通常不会完全关闭,因此并不总是需要服务。我自己在游戏中使用通知,让用户知道某些时间相关的操作何时完成,而无需使用服务。无论如何,感谢您的输入。 - Björn Kechel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接