Kotlin Study

AppStore version , Device installed App version 가져오기 in Kotlin

85chong 2020. 7. 8. 16:41
728x90
반응형
SMALL

◎준비물

library , permission , 앱 스토어에서 받을class , 앱 스토어서 받을class 실행할 함수



◎Step


* app > build.gradle 라이브러리 추가

implementation group: 'org.jsoup', name: 'jsoup', version: '1.10.2'


* AndroidManifest.xml 권한 추가

	<uses-permission android:name="android.permission.INTERNET"/>

 

 

 (val mContext:Context 값이 있다고 가정함)


* 디바이스 설치되어있는 앱 버전(app > build.gradle > versionName)값 가져오기

	...
    fun getAppVersion(): String {
        var resultCurrentyVersion = ""//현재 사용중인 앱 버전값 담을 변수
        try {
            var pm:PackageManager = mContext.packageManager
            var pInfo:PackageInfo = pm.getPackageInfo(mContext.packageName,0)
            resultCurrentyVersion = pInfo.versionName
        }catch (e:Exception){
            var sw:StringWriter = StringWriter()
            e.printStackTrace(PrintWriter(sw))
            var exceptionAsString:String = sw.toString()
            Log.e("excep","e : "+exceptionAsString)
        }
        return resultCurrentyVersion
    }
	...

 

* 앱스토어에 올라가있는 앱 버전값 가져오기 (실행 함수)

...
fun getAppStoreVersion() {
	var getLatestVersion:GetLatestVersion = GetLatestVersion()
	getLatestVersion.execute()
}
...

 

 

* 앱스토어에 있는 버전 값 가져오기(클래스)

import android.os.AsyncTask
import android.util.Log
import org.json.JSONObject
import org.jsoup.Jsoup
import java.io.PrintWriter
import java.io.StringWriter
import java.lang.Exception

class GetLatestVersion : AsyncTask<String,String,JSONObject>() {

    var mstrStoreLatestVesion:String = ""//앱 스토어에서 가져은  version 값 담을 변수

    override fun onPreExecute() {
        super.onPreExecute()
    }

    override fun doInBackground(vararg params: String?): JSONObject {
        try {
			var pm:PackageManager = mContext.packageManager
            var pInfo:PackageInfo = pm.getPackageInfo(mContext.packageName,0)
			var pkgName = pInfo.packageName
		            var doc: org.jsoup.nodes.Document? = Jsoup.connect("market://details?id="+pkgName).get()
            mstrStoreLatestVesion = doc!!.getElementsByClass("htlgb").get(6).text()
        }catch (e:Exception){
            var sw = StringWriter()
            e.printStackTrace(PrintWriter(sw))
            var exceptionAsString = sw.toString()
            Log.e("excep","e : "+exceptionAsString)
        }
        return JSONObject()
    }

    override fun onPostExecute(result: JSONObject?) {
        super.onPostExecute(result)
        Log.d("MyTAG","latestVertsion : "+mstrStoreLatestVesion)
    }

}//class end


앱스토어 에서 값을 가져오는 로직 실행은 getAppSoreVersion() 시작해서 class GetLatestVersion > onPostExecute()에서 끝난다. 이때 mstrStoreLatestVesion값을 가지고,
용도에 맞게 가져다 사용하면 됨


- 끝 -

'Kotlin Study' 카테고리의 다른 글

lateinit property 사용시 주의  (0) 2021.01.26
Kotlin get set 사용법  (0) 2021.01.26
Kotlin 만의 null 처리 방식  (0) 2020.03.13
Delay Handler in Kotlin  (0) 2020.02.25
Dialog interface 사용법 in Kotlin  (0) 2020.02.21