大きな問題があります。まず、アイテムのリストがあります。ユーザーが各アイテムをクリックすると、アプリはインターネットからファイルのダウンロードを開始します。これを AsyncTask シリアル エグゼキューターで実装しました。ファイルのダウンロードが完了すると、アプリケーションが正常にインストールされたときに、アプリがすぐに Android インストーラーの実行を開始します。デバイスの情報をサーバーに送信したい
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);
}
私の質問:ファイルのダウンロードがいつ完了したかを確認できます。私のアプリは新しいアクティビティで Android インストーラーを実行し、結果をメイン アクティビティに送り返します (OnActivityResult() を呼び出します)各子アクティビティの結果がメイン アクティビティに返されないように、新しいアプリケーションをインストールするためのアクティビティ。この問題を解決する方法はありますか?