版本检测升级是Android开发中不可缺少的下面我们利用第三方来进行版本的升级:
(1)登陆百度助手发布平台
地址:http://app.baidu.com/
在自动更新界面下载sdk,解压进入BDIntegrationSDK_LibProject并把libs包中的jar包和so库copy到相应的工程中:
操作步骤如下:
如过使用默认的升级界面还可以把相应的布局文件copy到res文件中:
(2)在清单文件中配置相应的内容:
<meta-data android:name="BDAPPID" android:value="8619453"/>
<meta-data android:name="BDAPPKEY" android:value="kYZmN7Y3vodq2RWcSyRwTKWdxYCjT2Hk"/>
<activity android:exported="false"
android:name="com.baidu.autoupdatesdk.ConfirmDialoigActivity"
android:screenOrientation="sensor"
android:theme="@style/bdp_update_dialog_style_fullscreen"/>
<receiver android:exported="false"
android:name="com.baidu.autoupdatesdk.receiver.BDBroadcastReceiver">
<intent-filter>
<action android:name="com.baidu.autoupdatesdk.ACTION_NEW_UPDATE"/>
<action android:name="com.baidu.autoupdatesdk.ACTION_DOWNLOAD_COMPLETE"/>
<action android:name="com.baidu.autoupdatesdk.ACTION_NEW_AS"/>
<action android:name="com.baidu.autoupdatesdk.ACTION_AS_DOWNLOAD_COMPLETE"/>
</intent-filter>
</receiver>
3.清单文件配置好后,可以些java代码了:
这里我们只使用默认UI更新,其他的请参照百度更新相应的内容:此接口被调用时会进行版本检测,若有新版本会弹出对话框提示用户。
接口:
staticvoid uiUpdateAction(Context context, UICheckUpdateCallback callback)
其中回调接口 UICheckUpdateCallback 需实现的方法:
方法名 描述
void onCheckComplete () 当检测到无版本更新或者用户关闭版本更新提示框或者用户点击了升级下载时会触发回调该方法
Java代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.setting);
MyApplication.getInstance().addActivity(this);
/*
* 找控件
*/
dialog = new ProgressDialog(this);
dialog.setIndeterminate(true);
BDAutoUpdateSDK.cpUpdateCheck(this, new MyCPCheckUpdateCallback());
initView();
}
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
switch (view.getId()) {
case R.id.update_version_rl:
//UmengUpdateAgent.forceUpdate(this);
dialog.show();
BDAutoUpdateSDK.uiUpdateAction(this, new MyUICheckUpdateCallback());
// BDAutoUpdateSDK.uiUpdateAction(this, new MyUICheckUpdateCallback());
// BDAutoUpdateSDK.cpUpdateCheck(this, new MyCPCheckUpdateCallback());
// BDAutoUpdateSDK.asUpdateAction(this, new MyUICheckUpdateCallback());
// BDAutoUpdateSDK.silenceUpdateAction(this);
break;
}
}
private class MyUICheckUpdateCallback implements UICheckUpdateCallback {
@Override
public void onCheckComplete() {
dialog.dismiss();
}
}
结果如图所示:
注意:在Android6.0开发中版本升级时需要写运行时读写权限代码,或者把目标版本改写成22.不然会下载失败