android中如何让自己开发的软件周期性的进行版本升级的提示
来源:互联网 发布:tensorflow中none 编辑:程序博客网 时间:2024/05/16 18:12
private String remoteurl = "http://jcw.591hx.com/djgnew/djgupdatefile/android_alert/hxsw_android_ver.txt";//这是一个服务器端的地址的定义
private final String tempfile = "version_alet_time";
private String version;
1.
// 获取设备信息
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String imsi = tm.getSubscriberId();
String model = android.os.Build.MODEL;
String strDownFrom = null;
String strModel = null;
String strUrl = null;
PackageManager manager = this.getPackageManager();
try {
PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);
strVersionText = info.versionName; // 本地存放的版本号
} catch (NameNotFoundException e) {
e.printStackTrace();
}
try {
HttpClient client = new DefaultHttpClient();
HttpUriRequest request = new HttpGet(remoteurl);
HttpResponse response = client.execute(request);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
reader = new BufferedReader(new InputStreamReader(response
.getEntity().getContent()));
version = reader.readLine();//服务器端存放的版本号
url = reader.readLine();//服务器端存放的下载地址
Float remoteversion = Float.parseFloat(version);
Float localversion = Float.parseFloat(strVersionText);
if (remoteversion - localversion > 0.00001) {
long curtime = new Date().getTime();
long prevalerttime = readTimeFromFile();// 从文件中读取
if (curtime - prevalerttime > 7 * 24 * 3600 * 1000) {
//每七天进行一次弹框提示
new AlertDialog.Builder(HXStockWarningActivity.this)
.setMessage("当前有新版本,是否升级?")
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int whichButton) {
//这里面可以根据自己的需要修改
setResult(RESULT_OK);// 确定按钮事件
Uri uri = Uri.parse(url);
Intent intent = new Intent(
Intent.ACTION_VIEW, uri);
startActivity(intent);
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int whichButton) {
}
}).show();
// 写入文件
writeTimeToFile(curtime);
}
}
}
} catch (Exception e) {
Log.e("HttpConnectionUtil", e.getMessage(), e);
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
}
}
2.
// 把版本升级弹框的时间写入文件
private void writeTimeToFile(long time) {
try {
FileOutputStream fout = openFileOutput(tempfile, MODE_PRIVATE);
byte[] bytes = Comm.LongToBytes(time);
fout.write(bytes);
fout.close();
} catch (Exception e) {
e.printStackTrace();
}
}
// 从文件里读上一次版本弹框的时间
public long readTimeFromFile() {
long ress = 0;
try {
FileInputStream fin = openFileInput(tempfile);
byte[] buffer = new byte[8];
fin.read(buffer);
ress = Comm.BytesToLong(buffer, 0);
fin.close();
} catch (Exception e) {
e.printStackTrace();
}
return ress;
}
- android中如何让自己开发的软件周期性的进行版本升级的提示
- 如何让eclipse的xml进行提示
- iOS如何取得APP的版本信息跟服务器对比进行升级提示
- iOS如何取得APP的版本信息跟服务器对比进行升级提示?
- OS如何取得APP的版本信息跟服务器对比进行升级提示?
- 如何制作自己的android升级…
- Android中如何让自己的播放器被调起
- Android版本升级中出现的问题
- 如何保护自己开发的软件
- 内核中如何实现周期性的任务执行
- 安装自己开发的DNN模块时提示版本不符合
- 【Android】如何提高自己软件的稳定性
- 如何升级esxi的版本
- 在一个软件开发项目中进行实际日程安排的十二点提示(转)
- 在一个软件开发项目中进行实际日程安排的十二点提示(转)
- 在一个软件开发项目中进行实际日程安排的十二点提示(转)
- 在一个软件开发项目中进行实际日程安排的十二点提示(转)
- 在一个软件开发项目中进行实际日程安排的十二点提示(转)
- C C++与C#
- 如果让淘宝来做我们的铁路订票系统如何?
- Tokyo Cabinet及其Python接口的安装
- Linux的特殊文件权限
- 自已动手写Android Widget续集 —— TopWidget
- android中如何让自己开发的软件周期性的进行版本升级的提示
- oracal 与 sql 常用函数对比(转)
- 大众点评Windows Phone 7客户端正式发布
- 迟来的2011年的总结
- 小论c++中 endl 和 '\n'的区别
- 如何搭建ORACLE性能测试环境
- android数据存储之contentProvider
- bat调用ant,ant执行java类,怎样传递参数的
- 基础测试用例的作用