我在Play商店中更新了我的应用程序的新版本。想要在已经安装了应用程序的手机中进行自动更新。我做了这项工作。
dependencies {
compile 'org.jsoup:jsoup:1.10.2'
}
在MainActivity
中,我做了这项工作-
public class MainActivity extends AppCompatActivity {
String newVersion;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new FetchAppVersionFromGooglePlayStore().execute();
}
class FetchAppVersionFromGooglePlayStore extends AsyncTask<String, Void, String> {
protected String doInBackground(String... urls) {
try {
return
Jsoup.connect("https://play.google.com/store/apps/details?id=" + "com.directed.android.smartstart" + "&hl=en")
.timeout(10000)
.userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.referrer("http://www.google.com")
.get()
.select("div[itemprop=softwareVersion]")
.first()
.ownText();
} catch (Exception e) {
return "";
}
}
protected void onPostExecute(String string) {
newVersion = string;
Log.d("new Version", newVersion);
}
}
}
但是,仍然无法正常工作。我该如何解决这个问题?
答案 0 :(得分:1)
我相信您想要的是支持应用程序内更新。如official docs所述,应用程序内更新会在可用更新的情况下向用户显示一个对话框,并且由用户选择是否要更新。
它是这样的:
我个人觉得不错,因为作为一名Android开发人员,我希望我的用户在考虑到隐私和安全问题的情况下保持最新状态。并且不强制用户更新维护用户体验。
这样,您就不必在内置的AppUpdateManager
中使用JSOUP了。
您应该阅读official docs : Support in-app updates。
编辑:您可以进一步设置并检查更新优先级,以评估是否需要更新。如官方文件所述:
Google Play开发者API允许您设置每次更新的优先级。这使您的应用可以决定向用户推荐更新的强烈程度。例如,考虑以下用于设置更新优先级的策略:
UI的次要改进:低优先级更新;既不要求灵活性 也不立即更新。
性能改进::中等优先级 更新请求灵活的更新。
关键安全更新:高优先级更新;需要立即更新。
为了确定优先级,Google Play使用介于0和5之间的整数值,其中> 0是默认值,而5是最高优先级。设置 更新的优先级,请使用下面的
inAppUpdatePriority
字段 Google Play开发者API中的Edits.tracks.releases。优先可以 仅在推出新版本时设置,无法更改 以后。
优先级是相关的,因为它会改变用户可见的更新对话框的频率,因为每次进行次要更新时都会困扰用户,这不是一个好的UX。