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 |