可以以编程方式更新 Google Play 服务吗?

Posted

技术标签:

【中文标题】可以以编程方式更新 Google Play 服务吗?【英文标题】:It's possible to programatically update Google Play Services? 【发布时间】:2016-09-26 09:05:46 【问题描述】:

我正在开发一个需要更新 Google Play 服务以获取当前位置(地理位置)的应用程序,如果它没有更新它就不能正常工作,将使用我的应用程序的用户可能不知道如何更新它所以我想知道我是否可以以编程方式将 Google Play 服务更新到最新版本或“X”版本。 我有这个来检查版本,但我找不到更新谷歌播放服务的方法:

 private void checkGoogleServicesVersion()
    try 
        PackageInfo packageInfo = getPackageManager().getPackageInfo("com.google.android.gms", 0);
        Log.i("MAINA"," GMS version: "+packageInfo.versionName+" "+packageInfo.versionCode);

        if (packageInfo.versionCode < 9400000)

            // UPDATE GOOGLE PLAY SERVICES
        
     catch (PackageManager.NameNotFoundException e) 
        e.printStackTrace();
    

Pd:这是一个私人应用程序,用户甚至不拥有设备,所以我不应该有安全限制,我只是想让应用程序对用户更容易,如果这不可能的话我会知道一种让用户轻松更新它的方法。

【问题讨论】:

【参考方案1】:

出于明显的安全原因,这应该是不可能的。

如果您可以更新任何已安装的应用程序或服务,则可能会影响系统的稳定性。

也许其他一些应用程序依赖于特定版本,您可以通过更改版本来破坏它。

另一个原因可能是您只能在同意更新的条款和条件后才能使用更新的版本。并且用户可能不想同意这些并且没有故意更新。

这就是原因。从技术上讲,系统不允许您启动更新。您可以下载任意 APK 并要求用户安装(亚马逊为他们的视频服务应用程序这样做)。

但您可能希望为低于您要求的 PlayServices 版本找到备用解决方案。

【讨论】:

以上是关于可以以编程方式更新 Google Play 服务吗?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式从 google play 游戏中删除保存的游戏

无法连接到 google play 服务

启用通知/观看 Google Play 存储桶以编程方式下载报告

Google Play Games C++ API - 无法以编程方式访问好友

Google Play:如果用户已经订阅,可以申请促销代码以延迟下一个付款日期吗?

可以在内部测试轨道上测试 Google Play 游戏服务吗?