2013-11-25 92 views
2

下载.apk文件如何通过下载管理器下载APK文件: 我通过这段代码尝试:如何通过下载管理器

public class UpdateCheckerService extends Service {  

    UpdateChecker update_checker; 
    DownloadManager downloadManager; 
    String Download_path="http://www.xxxxx.com/mobile_api/xxxxxx.apk"; 
    SharedPreferences preferenceManager; 
    String Download_ID = "100"; 

    @Override 
    public IBinder onBind(Intent arg0) { 
     // TODO Auto-generated method stub 
     return null; 
    } 
    public void onCreate() 
    { 
     System.out.println("SERVICE ************ CREATED"); 
    } 
    public void onStart(Intent intent1, int start_id) 
    { 
     System.out.println("Service started"); 
     IntentFilter intentFilter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE); 
     registerReceiver(downloadReceiver, intentFilter); 
     System.out.println("Service started"); 

     if(isNetworkAvailable()) 
     {    
      if(true) 
      { 
       System.out.println("Update AVAAILLL:"); 
       preferenceManager = PreferenceManager.getDefaultSharedPreferences(this); 
       downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE); 
       Environment 
        .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) 
        .mkdirs(); 

        Uri Download_Uri = Uri.parse(Download_path); 

        DownloadManager.Request request = new DownloadManager.Request(Download_Uri); 

        long download_id = downloadManager.enqueue(request.setTitle("Downloading...") 
          .setDescription("xxxx").setMimeType("application/vnd.android.package-archive").setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, 
            "xxxxx.apk")); 

        Editor PrefEdit = preferenceManager.edit(); 
        PrefEdit.putLong(Download_ID, download_id); 
        PrefEdit.commit(); 
      } 
     } 
    } 
    public void onDestroy() 
    { } 

当我要安装apk文件的生动解析错误。 并在logcat中告诉它无法读取清单文件。 其实.apk文件的大小是400kb,但下载后显示40kb。

请建议我错在哪里..

回答

0

有没有办法做到这一点。这是为了安全 - 否则你会让每个网站悄悄地在人们身上安装应用程序。您可以下载apk,然后使用文件管理器进行安装,但无法通过浏览器进行下载和安装。

+0

我没有通过浏览器进行安装。我只想从我的服务器下载.apk文件到移动SD卡。 – savari