Android APP는 브라우저를 통해 최신 버전을 다운로드합니다.
5041 단어 문제 해결
우선 앱의 로컬 버전과 서버의 버전이 같은지 판단합니다.새로운 버전이 있으면 업데이트를 진행합니다.서버 측에서 두 개의 인터페이스를 제공해야 한다
/**
*
*
* @throws PackageManager.NameNotFoundException
*/
public static String getVersionName(Context context) throws PackageManager.NameNotFoundException {
// packagemanager
PackageManager packageManager = context.getPackageManager();
// getPackageName() ,0
PackageInfo packInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
String version = packInfo.versionName;
return version;
}
2. 버전 번호의 명칭에 따라 버전의 높낮이가 0이 같다는 것을 판단한다. 1은version1이version2보다 크고 -1은version1이version2보다 작다는 것을 의미한다.
/**
*
*0 ,1 version1 version2,-1 version1 version2
* @param version1
* @param version2
* @return
*/
public static int compareVersion(String version1, String version2) {
if (version1.equals(version2)) {
return 0;
}
String[] version1Array = version1.split("\\.");
String[] version2Array = version2.split("\\.");
int index = 0;
//
int minLen = Math.min(version1Array.length, version2Array.length);
int diff = 0;
//
while (index < minLen
&& (diff = Integer.parseInt(version1Array[index])
- Integer.parseInt(version2Array[index])) == 0) {
index++;
}
if (diff == 0) {
// ,
for (int i = index; i < version1Array.length; i++) {
if (Integer.parseInt(version1Array[i]) > 0) {
return 1;
}
}
for (int i = index; i < version2Array.length; i++) {
if (Integer.parseInt(version2Array[i]) > 0) {
return -1;
}
}
return 0;
} else {
return diff > 0 ? 1 : -1;
}
}
3. 서버에서 최신 버전 http 도구 클래스(HttpURLTOols)를 가져오면 Http 도구 클래스를 참조할 수 있습니다.
Handler handlerapkVersion = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Bundle data = msg.getData();
String strRet = data.getString("value");
if (strRet == null) {
UIHelper.showToast(LoginActivity.this, " !");
} else {
try {
JSONObject json = new JSONObject(strRet);
String apkVersion = json.getString("versionnumber");
String apkVersion1 = UIHelper
.getVersionName(LoginActivity.this);// app
int result = UIHelper.compareVersion(apkVersion1,
apkVersion);
if (result == -1) { //
showNoticeDialog();
}
} catch (JSONException | NameNotFoundException e) {
e.printStackTrace();
}
}
}
};
Runnable apkVersionTask = new Runnable() {
@Override
public void run() {
String strRet = null;
try {
strRet = HttpURLTools.sendHttpGet(GenBDB.strBaseURL
+ "apk/apkVersion");// ( )
} catch (Exception e) {
e.printStackTrace();
}
Message msg = new Message();
Bundle data = new Bundle();
data.putString("value", strRet);
msg.setData(data);
handlerapkVersion.sendMessage(msg);
}
};
4. 팝업 다이어로그 힌트 업데이트 스타일은 자신의 요구에 따라 디자인할 수 있으며 안드로이드 다이어로그의 간단한 사용자 정의 레이아웃을 참조할 수 있습니다.
private void showNoticeDialog() {
android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(
LoginActivity.this);// Builder, builder AleartDialog
builder.setTitle(" ");
String updateMsg = " , !";
builder.setMessage(updateMsg);
builder.setPositiveButton(" ", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
openBrowserUpdate(GenBDB.strBaseURL
+ "gfjhgl.apk");
}
});
builder.setNegativeButton(" ", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
Dialog noticeDialog = builder.create();
noticeDialog.show();
}
5. 브라우저 다운로드 호출
/**
* apk
* @param apkUrl apk
*/
private void openBrowserUpdate(String apkUrl) {
Intent intent = new Intent();
intent.setAction("android.intent.action.VIEW");
Uri apk_url = Uri.parse(apkUrl);
intent.setData(apk_url);
startActivity(intent);//
}
일부 내용은android 구현 app 내부 검측 최신 버전 자동 업그레이드 최신 버전 안드로이드에서 브라우저 업데이트 앱 최신 버전 열기
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Mac 원격 데스크톱에서 Windows로 복사할 수 없는 경우원격 데스크톱 응용 프로그램이 사각형 아이콘이라면 오래된 원격 데스크톱 응용 프로그램입니다. 에서 최신 Remote Desktop 응용 프로그램(Microsoft Remote Desktop10)을 다운로드하면 복사할...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.