Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

rustore-dev/rustore-sdk-update-example

Repository files navigation

Primer vnedreniia RuStore SDK obnovleniia prilozheniia

Trebuemye usloviia

Dlia korrektnoi raboty SDK neobkhodimo sobliudat' sleduiushchie usloviia:

Trebovaniia dlia pol'zovatelia:

  • Na ustroistve pol'zovatelia ustanovleno prilozhenie RuStore.

  • Versiia RuStoreApp na ustroistve pol'zovatelia aktual'naia.

  • Pol'zovatel' avtorizovan v prilozhenii RuStore.

  • Dlia prilozheniia RuStore dolzhna byt' razreshena ustanovka iz neizvestnykh istochnikov.

Trebovaniia dlia razrabotchika/prilozheniia:

  • Android 6 (SDK 23)

  • ApplicationId, ukazannyi v build.gradle, sovpadaet s applicationId apk-faila, kotoryi vy publikovali v konsol' RuStore:

  • Podpis' keystore dolzhna sovpadat' s podpis'iu, kotoroi bylo podpisano prilozhenie, opublikovannoe v konsol' RuStore. Ubedites', chto ispol'zuemyi buildType (pr. debug) ispol'zuet takuiu zhe podpis', chto i opublikovannoe prilozhenie (pr. release).

Ispol'zovanie metodov

Snachala nuzhno proverit' dostupnost' obnovleniia dlia vashego prilozheniia:

ruStoreAppUpdateManager
.getAppUpdateInfo()
.addOnSuccessListener { appUpdateInfo ->
if (appUpdateInfo.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE) {
// Obnovlenie dostupno
}
}
.addOnFailureListener { throwable ->
Log.e(TAG, "getAppUpdateInfo error", throwable)
}

Esli obnovlenie dostupno, mozhno zapuskat' sleduiushchii metod:

ruStoreAppUpdateManager
.startUpdateFlow(
// Ob'ekt AppUpdateInfo, poluchennyi v metode `getAppUpdateInfo()`
appUpdateInfo,
// Parametry obnovleniia (v tekushchei versii SDK ispol'zuiutsia parametry po umolchaniiu)
AppUpdateOptions.Builder().build()
)
.addOnSuccessListener { resultCode ->
if (resultCode == Activity.RESULT_CANCELED) {
// Pol'zovatel' otkazalsia ot skachivaniia
}
}
.addOnFailureListener { throwable ->
Log.e(TAG, "startUpdateFlow error", throwable)
}

Dannyi metod otobrazhaet pol'zovateliu dialog s podtverzhdeniem skachivaniia. Esli pol'zovatel' soglashaetsia, to metod vozvrashchaet Activity.RESULT_OK, inache Activity.RESULT_CANCELED. Obratite vnimanie - kazhdyi ob'ekt AppUpdateInfo mozhet ispol'zovat' tol'ko odin raz. Dlia povtornogo vyzova metoda nuzhno zaprosit' ego snova.

Dlia otslezhivaniia statusa skachivaniia obnovleniia mozhno zaregistrirovat' slushatel':

val installStateUpdateListener = InstallStateUpdateListener { installState ->
when (installState.installStatus) {
InstallStatus.DOWNLOADED -> {
// Skachivanie zaversheno, mozhno zapuskat' ustanovku obnovleniia
}
InstallStatus.DOWNLOADING -> {
val totalBytes = installState.totalBytesToDownload
val bytesDownloaded = installState.bytesDownloaded

// Skachivanie v protsesse. Mozhno, naprimer, otobrazit' ProgressBar
}
InstallStatus.FAILED -> {
// V protsesse skachivaniia voznikla oshibka
}
}
}

// Pered tem kak nachinat' skachivanie obnovleniia, dobav'te slushatel'
ruStoreAppUpdateManager.registerListener(installStateUpdateListener)

// Kogda otslezhivanie statusa bol'she ne nuzhno - udalite slushatel'
ruStoreAppUpdateManager.unregisterListener(installStateUpdateListener)

Posle togo kak obnovlenie skachano, mozhno zapuskat' ustanovku. Posle zapuska ustanovki prilozhenie avtomaticheski zakroetsia.

ruStoreAppUpdateManager.completeUpdate()

Est' voprosy

Esli poiavilis' voprosy po integratsii SDK obnovlenii, obratites' po etoi ssylke: https://help.rustore.ru/rustore/trouble/user/help_user_email ili napishite na pochtu support@rustore.ru.

About

Primer vnedreniia RuStore SDK obnovleniia prilozheniia

Topics

Resources

Readme

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages