-1

ご理解のとおり、ユーザーがダウンロード リンクをクリックすると、サーバーからアプリケーションをダウンロードします。そしてもちろん、インストールするために、ユーザーはそれをインストールするために同意します。したがって、私は疑問に思います。

  • サーバーからパッケージをダウンロードすることはできますか? はいの場合、どのように?
4

3 に答える 3

2

はい、可能です。適切な MIME タイプを使用するようにサーバーが構成されていることを確認してください。

AddType application/vnd.android.package-archive .apk

また

<a href="apk location" type="application/vnd.android.package-archive">Download App</a>

アプリで apk をダウンロードするには、こちらのオープン ソース ライブラリを使用できます。更新の確認とダウンロードを目的としていますが、他の apk ファイル (またはその他のファイル) のダウンロードにも使用できます。

アクティビティで、次のコードを onCreate() に追加します。トースト通知が不要な場合は、2 番目のパラメーターを次のように変更しますfalse

UpdateChecker checker = new UpdateChecker(this, true);

次に、以下を使用して、更新プログラムをダウンロードしてインストールします。ダウンロード中に進行状況ダイアログが表示されることに注意してください。

checker.downloadAndInstall("URL with http:// to the location of the update apk");
于 2013-01-20T18:38:20.313 に答える
1

Android フレームワークが .apk ファイルをダウンロードした場合、それをインストールするかどうか尋ねられます。そのような単純な。

于 2013-01-20T18:35:11.963 に答える
0

apk ファイルをダウンロードするコードは次のとおりです。

String fileName="yourApk.apk";
try 
{
    File root = android.os.Environment.getExternalStorageDirectory();
    File dir = new File (root.getAbsolutePath()+"/DownloadedApk/");
    if(dir.exists()==false) 
    {
         dir.mkdirs();
    }
    URL url = new URL("http://www.example.com/apk/yourApk.apk"); 
    URLConnection ucon = url.openConnection();
    InputStream is = ucon.getInputStream();
    FileOutputStream fos = new FileOutputStream(dir+"/"+fileName);
    byte data[] = new byte[1024];
    long lenghtOfFile=ucon.getContentLength();
    int count = 0;
    long total = 0;
    int progress = 0;
    while (((count=is.read(data)) != -1))
    {
        total += count;
        int progress_temp = (int) ((int)total*100/lenghtOfFile);
        if(progress_temp%10 == 0 && progress != progress_temp)
        {
            progress = progress_temp;
            publishProgress(progress);    
        }
        fos.write(data, 0, count);
    }
    is.close();
    fos.close();
} catch (Exception e) 
{
    Log.d("DownloadManager", "Error: " + e);
}
于 2013-01-20T18:40:42.423 に答える