我担心答案可能“不可能”,但我想知道是否有办法检测我上传的apk到Play商店是否是alpha / beta或稳定频道。
我想实现这个目标,因为我有一个完整的菜单导致Beta功能,我想隐藏在稳定的频道中。
这非常有用,因为虽然我修复了我推送到商店的常规错误,但我不想每次都使用或不使用beta按钮重新编译。
遗憾的是,我没有可以分享的代码,但任何帮助或建议都会受到高度赞赏
我觉得这个功能确实有一个很好的用例。请考虑以下情形:
答案 0 :(得分:1)
真的很简单,上传不同的APK。仅使用测试版渠道中的测试版功能维护不同的代码分支。重新编译不应该是一个很大的麻烦。你是使用某种形式的源代码控制吗?
答案 1 :(得分:1)
我希望有一种方法可以很容易地做到这一点,但我还没找到。
另一种选择是拥有一个包含测试版功能的标记,然后使用Google跟踪代码管理器http://www.google.com/tagmanager/在您将应用升级到生产之前切换您在测试版发布时只需要的功能。
答案 2 :(得分:0)
Alpha / Beta刚刚推出,谷歌没有提到你想要的任何东西 如果这样的事情是可能的,它的位置可能是Google Play Services 它不存在。
可能的解决方法 -
如果您知道要从测试版生产到生产的日期,可以使用以下小技巧:将调试菜单的默认可见性设置为gone
,并在此日期之前将其设置为在代码中可见。
答案 3 :(得分:-1)
假设通常将相同的APK从Beta升级为正式版,则您的应用可以使用Android HttpURLConnnection来读取您自己的应用ID的Google Play商店详细信息页面。
如果当前用户已注册Beta,则应用名称将显示为“ 应用名称(测试版)”,否则将仅为“ 应用名称” < / p>
示例Java代码,以了解您如何在下面实现该代码:
boolean isBeta = false;
URL url = new URL("https://play.google.com/sore/apps/details?id=com.example.app");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
Scanner scanner = new Scanner(in);
isBeta = (scanner.findWithinHorizon("\\s\\(Beta\\)", 650000) != null);
} finally {
urlConnection.disconnect();
}