2016-05-17 2 views
0

В настоящее время я разрабатываю приложение, которое необходимо проверить, доступна ли новая версия. Я нашел, как загрузить apk и установить его. Но я не могу понять, как получить URL APK. Я использую среду тестирования (альфа), поэтому мое приложение еще не опубликовано, где я могу получить URL APK. Вот код для загрузки:Где находится файл APK для скачивания в Android?

  try { 
      URL url = new URL(apkurl); 
      HttpURLConnection c = (HttpURLConnection) url.openConnection(); 
      c.setRequestMethod("GET"); 
      c.setDoOutput(true); 
      c.connect(); 

      String PATH = Environment.getExternalStorageDirectory() + "/download/"; 
      File file = new File(PATH); 
      file.mkdirs(); 
      File outputFile = new File(file, "app.apk"); 
      FileOutputStream fos = new FileOutputStream(outputFile); 

      InputStream is = c.getInputStream(); 

      byte[] buffer = new byte[1024]; 
      int len1 = 0; 
      while ((len1 = is.read(buffer)) != -1) { 
       fos.write(buffer, 0, len1); 
      } 
      fos.close(); 
      is.close();//till here, it works fine - .apk is download to my sdcard in download file 

      Intent intent = new Intent(Intent.ACTION_VIEW); 
      intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "app.apk")), "application/vnd.android.package-archive"); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(intent); 

     } catch (IOException e) { 
      Toast.makeText(getApplicationContext(), "Update error!", Toast.LENGTH_LONG).show(); 
     } 

Как я могу получить URL APK?

+0

вы загружаете apk в 'Environment.getExternalStorageDirectory() +"/download/";' имя каталога app.apk. а также onDownload вы открываете его с помощью 'intent.setDataAndType (Uri.fromFile (новый файл (Environment.getExternalStorageDirectory() +"/download/"+" app.apk "))," application/vnd.android.package-archive ");' так что ошибка вы получаете –

+0

Как я могу узнать, в какую папку я должен скачать файл? – Eli

ответ

0

Если вы используете среду Alpha (testing). Это Адрес:

https://play.google.com/apps/testing/com.yourdomain.package 

Но ваш APK не будет доступен для общественности, это только для активированных тестировщиков в разделе альфа.

+0

Хорошо, спасибо, как я могу узнать, в какую папку загружать файл? – Eli

2

Вы должны создать его самостоятельно. создайте папку и назовите файл. как вы это делаете в коде. например

String PATH = Environment.getExternalStorageDirectory() + "/download/"; 
      File file = new File(PATH); 
      file.mkdirs(); 
      File outputFile = new File(file, "app.apk"); 

Чтобы создать свою собственную, сделайте это.

Добавить это разрешение в манифесте,

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

и создать папку с именем файла

File folder = new File(context.getCacheDir().getPath() + "/files/myFolder"); 
folder.mkdirs(); 

File f= new File(folder, "app.apk"); 
if (!folder .exists()){ 
    folder.create(); 
} 

, где вы можете поместить ваш APK

Смежные вопросы