2016-03-15 3 views
0

у меня есть почтовый файл, который был загружен из URL и путь устанавливается в /storage/emulated/0/myapp/downloadedfile.zipВыбор Намерение для Zip файлов

Теперь я хотел бы открыть этот почтовый файл с помощью выбрать умысел список доступных приложений, чтобы открыть загруженный файл.

Я поставил это в манифесте:

<activity 
     android:name=".MyApp" 
     android:alwaysRetainTaskState="true" 
     android:launchMode="singleInstance" 
     android:theme="@style/MyMaterialTheme"> 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW"/> 
       <category android:name="android.intent.category.DEFAULT"/> 
       <data android:mimeType="application/zip"/> 
      </intent-filter> 
</activity> 

Теперь я звоню этот путь, чтобы открыть Намерение CHOOSER

File downloadedfile = new File(Environment.getExternalStoragePublicDirectory(Environment.getExternalStorageDirectory() + "/myapp") + "/" + "downloadedfile.zip"); 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(downloadedfile), "application/zip"); 
startActivity(intent); 

Это прекрасно работает, если у меня есть ESFileExplorer уже установлена ​​на мое приложение

Но я хотел бы проверить, есть ли предустановленное приложение, или мне нужно показать playstore также является одним из вариантов, позволяющих пользователю загружать приложение и устанавливать приложение ESFileExplorer.

Так как это сделать?

ответ

2

Android Intent Zip File

try{ 
    File downloadedfile = new File(Environment.getExternalStoragePublicDirectory(Environment.getExternalStorageDirectory() + "/myapp") + "/" + "downloadedfile.zip"); 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setDataAndType(Uri.fromFile(downloadedfile), "application/zip"); 
    startActivity(intent); 
}catch (ActivityNotFoundException Ae){ 
    //When No application can perform zip file 
    Uri uri = Uri.parse("market://search?q=" + "application/zip"); 
    Intent myAppLinkToMarket = new Intent(Intent.ACTION_VIEW, uri); 

    try { 
     startActivity(myAppLinkToMarket); 
    } catch (ActivityNotFoundException e) { 
     //the device hasn't installed Google Play 
     Toast.makeText(MainActivity.this, "You don't have Google Play installed", Toast.LENGTH_LONG).show(); 
    } 
} 
+0

@ SID- Это открывает намерение отправки – coder

+0

Проверено Обновлено Ответ –

+0

@coder сначала он ищет намерение zip. если ничего не найдено, то он открывает игровой магазин для приложения, поддерживающего zip-файл. –

0

Вы можете поймать startActivity намерения с ActivityNotFoundException и там вы можете запустить ES File Explorer, приложение рынка на игровой магазин.

+0

Любые комментарии или вы хотите, чтобы я написал для вас код? – maveroid

+0

@ maveroid- Можете ли вы показать мне? – coder

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