[Android实例] android 应用客户端自动升级
2011-12-21 16:05
302 查看
[Android实例] android 应用客户端自动升级 1.import java.io.File; 2. 3.import java.io.FileOutputStream; 4. 5.import java.io.IOException; 6. 7.import java.io.InputStream; 8. 9.import org.apache.http.HttpEntity; 10.import org.apache.http.HttpResponse; 11.import org.apache.http.client.ClientProtocolException; 12.import org.apache.http.client.HttpClient; 13.import org.apache.http.client.methods.HttpGet; 14.import org.apache.http.impl.client.DefaultHttpClient; 15. 16.import android.app.AlertDialog; 17.import android.app.Dialog; 18.import android.app.ProgressDialog; 19.import android.content.DialogInterface; 20.import android.content.Intent; 21.import android.net.Uri; 22.import android.os.Bundle; 23.import android.os.Environment; 24.import android.os.Handler; 25. 26.public class Update extends BaseActivity { 27. public ProgressDialog pBar; 28. private Handler handler = new Handler(); 29. 30. @Override 31. protected void onCreate(Bundle savedInstanceState) { 32. super.onCreate(savedInstanceState); 33. setContentView(R.layout.update); 34. Dialog dialog = new AlertDialog.Builder(Update.this).setTitle("系统更新") 35. .setMessage("发现新版本,请更新!")// 设置内容 36. .setPositiveButton("确定",// 设置确定按钮 37. new DialogInterface.OnClickListener() { 38. 39. @Override 40. public void onClick(DialogInterface dialog, 41. int which) { 42. pBar = new ProgressDialog(Update.this); 43. pBar.setTitle("正在下载"); 44. pBar.setMessage("请稍候..."); 45. pBar 46. .setProgressStyle(ProgressDialog.STYLE_SPINNER); 47. downFile("http://url:8765/OA.apk"); 48. 49. 50. } 51. 52. }).setNegativeButton("取消", 53. new DialogInterface.OnClickListener() { 54. public void onClick(DialogInterface dialog, 55. int whichButton) { 56. // 点击"取消"按钮之后退出程序 57. 58. } 59. }).create();// 创建 60. // 显示对话框 61. dialog.show(); 62. 63. } 64. 65. void downFile(final String url) { 66. pBar.show(); 67. new Thread() { 68. public void run() { 69. HttpClient client = new DefaultHttpClient(); 70. // params[0]代表连接的url 71. HttpGet get = new HttpGet(url); 72. HttpResponse response; 73. try { 74. response = client.execute(get); 75. HttpEntity entity = response.getEntity(); 76. long length = entity.getContentLength(); 77. InputStream is = entity.getContent(); 78. FileOutputStream fileOutputStream = null; 79. if (is != null) { 80. 81. File file = new File(Environment 82. .getExternalStorageDirectory(), "OA.apk"); 83. fileOutputStream = new FileOutputStream(file); 84. 85. byte[] buf = new byte[1024]; 86. int ch = -1; 87. int count = 0; 88. while ((ch = is.read(buf)) != -1) { 89. // baos.write(buf, 0, ch); 90. fileOutputStream.write(buf, 0, ch); 91. count += ch; 92. if (length > 0) { 93. 94. } 95. 96. } 97. 98. } 99. fileOutputStream.flush(); 100. if (fileOutputStream != null) { 101. fileOutputStream.close(); 102. } 103. down(); 104. } catch (ClientProtocolException e) { 105. // TODO Auto-generated catch block 106. e.printStackTrace(); 107. } catch (IOException e) { 108. // TODO Auto-generated catch block 109. e.printStackTrace(); 110. } 111. } 112. 113. }.start(); 114. 115. } 116. 117. void down() { 118. handler.post(new Runnable() { 119. public void run() { 120. pBar.cancel(); 121. update(); 122. } 123. }); 124. 125. } 126. 127. void update() { 128. 129. Intent intent = new Intent(Intent.ACTION_VIEW); 130. intent.setDataAndType(Uri.fromFile(new File("/sdcard/OA.apk")), 131. "application/vnd.android.package-archive"); 132. startActivity(intent); 133. } 134. 135.}
相关文章推荐
- android应用客户端自动升级
- android应用客户端自动升级代码
- android应用客户端自动升级
- android应用客户端自动升级 .
- android应用客户端自动升级代码 (转)
- android应用客户端自动升级
- android应用客户端自动升级
- [Android实例] android应用静默升级,安装完成后自动启动该应用
- 获得Android系统所有已安装的应用并联网自动检测升级更新
- android安卓升级版本安装后自动打开弹出完成和打开新版应用界面
- Android应用的自动升级、更新模块的实现
- Android应用的自动升级、更新模块的实现
- Android应用的自动升级、更新模块的实现(转)
- Android应用的自动升级、更新模块的实现
- Android 客户端自动升级代码及“应用程序未安装”的解决办法
- Android应用的自动升级、更新模块的实现
- android应用实现自动检测版本升级
- Android应用的自动升级、更新模块的实现
- Android应用实例之---使用Linkify + 正则式区分微博文本链接及跳转处理如同新浪微博Android版的应用上,当我们点击微博文本上的链接会自动跳转界面,或网站链接跳转网页浏览,或邮箱链接
- 【转】Android应用的自动升级、更新模块的实现 (2)