接入 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代码中动态设置的,请在调用更新之前使用
xxxxxxxxxxupdate.setChannel("渠道");
来设置渠道号。
如果您需要知道调用后是否会弹出更新,可以添加监听:
xxxxxxxxxxupdate.setUpdateLisener(new Update.UpdateCallback() {@Overridepublic void whetherUpdate(boolean udb) {if (udb) {// 提示更新} else {// 不提示更新(包括网络错误,后台设置不更新等情况)}}});
安装调用的是系统安装,如果系统不存在自带的安装器,可以添加监听获知:
xxxxxxxxxxupdate.setInstallLinsener(new Update.InstallCallback() {@Overridepublic void installSucess() {// 调起安装}@Overridepublic 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中,不要被第三方工具删除。
另外要注意 版本兼容。 、