0

プログラムでアプリをダウンロードすることは可能ですか?特定のアプリでGooglePlayを起動するつもりはありません。3つのアプリがあり、すべて関連していますが、機能が異なるとします。ダウンロードすると他の3つもダウンロードしてハブとして機能する4つ目のアプリを作成することは可能ですか?もしそうなら、誰かが私を正しい方向に向けることができますか?

4

4 に答える 4

0

アプリを自動的にインストールすることはできません。これはユーザーにとってかなり危険です。

たくさんの新しいAPKをダウンロードできますが、ユーザーは.apksを開いて自分でAPKをインストールする必要があります。

ただし、内部で1つの大きなアプリを作成することもできますが、ランチャーアクティビティとして複数のアクティビティを設定できるため、複数の小さなアプリとして表示できます。多分それはあなたのためのオプションですか?

于 2013-03-25T16:02:49.293 に答える
0

拡張ファイルのオプションもあります。おそらくそれは法案に合うかもしれませんか?

于 2013-03-25T16:04:47.383 に答える
0

うん。私は先日これをしました。アプリにはいくつかの権限が必要です。

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

外部ストレージを書き込むのは、APKファイルをどこかにダウンロードして保存する必要があるためです。

さらに、何らかの方法でファイルを取得する必要があります。私はJavaのHttpUrlConnectionオブジェクトを使用して実際のダウンロードを行います(Androidアプリでファイルをダウンロードする方法のより良い説明を検索できるかもしれませんが、それは非常に簡単です)。

ファイルをダウンロードしたら、パッケージマネージャーを起動してインストールするように指示します。残念ながら、ユーザーはアプリをインストールするために通常と同じダイアログに直面し、インストールを拒否することを選択できます。ユーザーの介入なしにインストールするには、アプリからADBに接続し、その方法でパッケージマネージャーを呼び出す必要がありますが、そこにどのような特権が含まれるかはわかりません。ユーザーにインストール確認ダイアログが表示されてもかまわない場合は、次のコードが機能します。

Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.setDataAndType(Uri.fromFile(new File("/sdcard/whereever-you-saved-this.apk")), "application/vnd.android.package-archive");
    startActivityForResult(intent, 0);

FLAG_ACTIVITY_NEW_TASKは、インストールしているAPKがパッケージマネージャーの起動に使用したアプリを上書きした場合に、一部の電話でクラッシュするのを防ぎます。

于 2013-03-25T16:15:22.180 に答える
0

これは次の方法でも実行できます。

Webサービスを介してサーバーからAPKファイルをダウンロードし、ダウンロード後、INSTALL_PACKAGES権限を使用してこれらのAPKファイルをインストールします。

于 2017-10-27T10:22:20.847 に答える