큰 문제가 있습니다. 첫째, 항목 목록이 있습니다. 사용자가 각 항목을 클릭하면 내 앱이 인터넷에서 다운로드 파일을 시작합니다. AsyncTask serial excutor를 사용하여 이것을 구현했습니다. 다운로드 파일을 완료 한 후 내 앱이 Android Installer를 즉시 실행하고 애플리케이션이 성공적으로 설치됩니다. 나는 서버에 장치의 정보를 보낼AsyncTask를 사용하여 일련 번호와 함께 AsyncTask 파일을 다운로드하고 onActivityResult 문제를 호출하십시오.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");
activity.startActivityForResult(intent, 1);
MainActivity.java
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
List<PackageInfo> packs = this.getPackageManager()
.getInstalledPackages(0);
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
if (InstalledPackageName != null
&& InstalledPackageName.equals(p.packageName)) {
//file install success
QstoreRestClient rest = new QstoreRestClient(this,
"Please wait...");
SecurityInstallManager secure = new SecurityInstallManager();
String strDeviceID = getUniqueDeviceId();
String strProductID = InstalledPackageID;
String strToken = mToken;
String strModel = getModelDevice();
Log.d("QSTORE mUserName", mUserName);
Log.d("QSTORE strProductID", strProductID);
Log.d("QSTORE strDeviceID", strDeviceID);
Log.d("QSTORE strToken", strToken);
Log.d("QSTORE strModel", strModel);
String strSHA = secure.getSHAHighscore(mUserName,
strDeviceID, strProductID, strToken);
rest.installShowLoading(mUserName, strProductID,
strDeviceID, strSHA, strModel, this);
Log.d("QSTORE", "Already Installed");
// return;
}
}
// }
InstalledPackageName = null;
InstalledPackageID = null;
}
super.onActivityResult(requestCode, resultCode, data);
}
내 질문 : 당신은 파일 다운로드가 완료되면, 내 응용 프로그램이 새로운 활동에 안드로이드 설치 프로그램을 실행보고 보낼 수 있습니다 결과가 주 활동으로 돌아갑니다. (OnActivityResult() 호출) 여기에서 문제는 5 개의 파일을 다운로드하면 내 응용 프로그램이 새 응용 프로그램 설치를위한 5 개의 새 활동을 실행하므로 각 하위 활동의 결과가 주 활동으로 되돌릴 수 없습니다. 이 문제를 해결할 방법이 있습니까?
멋진 솔루션, 매우 도움을 주신 데 – chinh
문제 없습니다. 설치 실패, 다운로드 실패 등의 오류 사례를 올바르게 처리해야 할 수도 있습니다. –