接入 aar 包
dependencies {
implementation(name: 'dangbeiupdate-2.2.6', ext: 'aar')
implementation(name: 'edeviceid-1.0.11', ext: 'aar') }
添加aar包支持
android { repositories { flatDir { dirs 'libs' } } }
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
其中
INTERNET
和ACCESS_WIFI_STATE
为必选权限 ;
WRITE_EXTERNAL_STORAGE
为可选权限,填写上后会将apk包下载到 SD卡上 ;
如果必选权限有缺失,会 toast 提示:Missing necessary permissions !
**targetSdkVersion 26以上需添加`REQUEST_INSTALL_PACKAGES`权限**
<uses-permissionandroid:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
x<!-- dangbeiUpdate -->
<activity
android:name="com.dangbei.update.view.UpdateDialog"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
<!-- dangbei download service -->
<service android:name="com.dangbei.downloader.core.DownloadService"/>
<provider
android:name="com.dangbei.updateprovider.DBFileProvider"
android:authorities="${applicationId}.dbfileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/dbprovider_paths" />
</provider>
为避免
provider
冲突协定自定义的provider
,已经接入广告338以上的应用可以不用重新申明provider
xxxxxxxxxx
// 后面的字符串为应用的appkey,由后台生成
Update update = new Update(MainActivity.this, "a72b20061474961418");
// 调用更新
update.startUpdate(false);
调用更新时传入的布尔值,一般传入false;如果传入true,意思是无视跳过此版本,即用户点击了跳过此版本后下次调用依旧会提示更新。
我们会获取 manifest 中的 UMENG_CHANNEL,来区分渠道,如果您的应用没有接入友盟或者您的渠道是在java代码中动态设置的,请在调用更新之前使用
xxxxxxxxxx
update.setChannel("渠道");
来设置渠道号。
如果您需要知道调用后是否会弹出更新,可以添加监听:
xxxxxxxxxx
update.setUpdateLisener(new Update.UpdateCallback() {
@Override
public void whetherUpdate(boolean udb) {
if (udb) {
// 提示更新
} else {
// 不提示更新(包括网络错误,后台设置不更新等情况)
}
}
});
安装调用的是系统安装,如果系统不存在自带的安装器,可以添加监听获知:
xxxxxxxxxx
update.setInstallLinsener(new Update.InstallCallback() {
@Override
public void installSucess() {
// 调起安装
}
@Override
public void installFail() {
// 安装器不存在
}
});
xxxxxxxxxx
-dontwarn com.dangbei.downloader.**
-keep class com.dangbei.downloader.** {*;}
-dontwarn com.dangbei.update.**
-keep class com.dangbei.update.** {*;}
-keep public class **.R$*{
public static final int *;
}
打包时尽量不要混淆R文件,要确保资源文件打入到apk中,不要被第三方工具删除。
另外要注意 版本兼容。 、