背景
我开发了一款具有root用户功能的应用。因此,我必须在有根设备上进行测试,有时必须将此设备恢复到出厂设置(即如果出现问题,或者必须测试新的固件/ ROM组合)。完成后,它有一个新的设备ID,如果我在此设备上打开该应用程序的当前生产版本,我就开始获得真正的广告。由于我只有一台设备可以使用,我无法在另一台设备上安装生产版本(我有时会检查一切是否正常)。
当前实施:
测试设备ID会在应用中的AdRequest中编码,就像Google在其文档中所建议的那样。我能想到的一件事是将它们存储在我的服务器上并使用应用程序发出的一个网络请求发送它们,但我不是那么喜欢(将测试代码放在生产API中)。
我的问题:
基本上:我希望在执行工厂恢复后继续在我的测试手机上获得测试广告,而无需更改我的代码并且必须向Google Play提交新的应用版本。是否有可能将旧设备ID(设备在出厂重置之前具有的设备ID)重新设置为当前设备ID,因此设备会继续接收测试广告?谁能告诉我他们如何应对这种情况?如果不可能,那么创建一个仅以非root模式运行应用程序的生产版本的模拟器(AVD)会更好吗?
答案 0 :(得分:1)
您可以注册(在app中)简单的广播接收器,发送正确的请求后会添加到白名单当前的deviceId,并将其存储在某处(例如共享的prefs)。
这样您就可以在生产中使用单个应用程序,并通过adb命令行动态添加到白名单设备ID ./adb shell am broadcast