A library makes your application's auto update more elegant !
Don't forget give me a star :)
Just one line of code to solve the silent download and silent installation
AutoInstaller.getDefault(this).install(APK_FILE_PATH);
ROOT
and AccessibilityService
, can automatically chose the valid way.There are two ways:
just add following code to you build.gradle:
// Add it in your root build.gradle at the end of repositories
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
// Add the dependency
dependencies {
compile 'com.github.a-voyager:AutoInstaller:v1.0'
}
Get the instance
get default instance or use AutoInstaller.builder
to build a instance
AutoInstaller installer = AutoInstaller.getDefault(this);
Register listener
installer.setOnStateChangedListener(new AutoInstaller.OnStateChangedListener() {
@Override
public void onStart() {
// callback when it starts installing
mProgressDialog.show();
}
@Override
public void onComplete() {
// callback when is complete request installing
mProgressDialog.dismiss();
}
@Override
public void onNeed2OpenService() {
// callback when `AccessibilityService` is needs and start the `AccessibilityService` Activity
// here you can notify user to open the service
Toast.makeText(MainActivity.this, "Please open Accessibility Service", Toast.LENGTH_SHORT).show();
}
});
Installation
install()
is an asynchronous method, call this to request install an application with parameter file path
or http url
// file path
installer.install(APK_FILE_PATH);
// or http url
installer.installFromUrl(APK_URL);
Use builder to config installer, contains installation mode、cache directory...
AutoInstaller installer = new AutoInstaller.Builder(this)
.setMode(AutoInstaller.MODE.AUTO_ONLY)
.setCacheDirectory(CACHE_FILE_PATH)
.build();