C'è un modo possibile per aprire un file con estensione doc?Android come aprire un file di estensione .doc?
risposta
è possibile copiare il file dalla risorsa non elaborata alla sdcard, quindi chiamare startActivity() su un intento ACTION_VIEW che ha un Uri che punta alla copia leggibile e ha anche il tipo MIME corretto.
Ovviamente, questo funzionerà solo su un dispositivo su cui è presente un visualizzatore di documenti Word.
A differenza di iOS, Android non supporta i file di rendering .doc o .ppt. Stai cercando un intento pubblico che permetta alla tua app di riutilizzare le attività di altre app per visualizzare questi tipi di documenti. Ma questo funzionerà solo per un telefono che ha un'app installata che supporta questo intento.
http://developer.android.com/guide/topics/intents/intents-filters.html
o se è stato installato qualche app quindi utilizzare questo intento:
//Uri uri = Uri.parse("file://"+file.getAbsolutePath());
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);
String type = "application/msword";
intent.setDataAndType(Uri.fromFile(file), type);
startActivity(intent);
Ha funzionato come un fascino. –
Ecco un metodo per prendersi cura di questo per voi:
public void openDocument(String name) {
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
File file = new File(name);
String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
if (extension.equalsIgnoreCase("") || mimetype == null) {
// if there is no extension or there is no definite mimetype, still try to open the file
intent.setDataAndType(Uri.fromFile(file), "text/*");
} else {
intent.setDataAndType(Uri.fromFile(file), mimetype);
}
// custom message for the intent
startActivity(Intent.createChooser(intent, "Choose an Application:"));
}
Open Document da Elenco delle applicazioni disponibili L'utente deve scegliere l'applicazione dall'elenco dell'applicazione
File targetFile = new File(path);
Uri targetUri = Uri.fromFile(targetFile);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(targetUri, "application/*");
startActivityForResult(intent, DOC);
Quindi, qual è il 'request_code' in' startActivityForResult() '. DOC non rappresenta un codice di richiesta specifico. – CagCak
è possibile aprire il file in visualizzazione Web se si desidera aprire all'interno dell'applicazione. es:
String doc="<iframe src='http://docs.google.com/viewer? url=http://www.iasted.org/conferences/formatting/presentations-tips.ppt&embedded=true'"+
" width='100%' height='100%' style='border: none;'></iframe>";
WebView wv = (WebView)findViewById(R.id.fileWebView);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setAllowFileAccess(true);
//wv.loadUrl(doc);
wv.loadData(doc , "text/html", "UTF-8");
Stavo cercando di vedere quali opzioni dovevo creare un'anteprima del file, non sapevo che potresti inviare a google docs un URL! –
Qui è il modo completa per aprire file doc in Android 7.0 o meno:
Step-1: Prima di tutto, inserire il vostro file pdf in attività come la cartella seguente screenshot.
Step-2: Passare al build.gradle di file e aggiungere le righe seguenti:
repositories {
maven {
url "https://s3.amazonaws.com/repo.commonsware.com"
}
}
e poi sotto le dipendenze aggiungere la riga e la sincronizzazione seguente:
compile 'com.commonsware.cwac:provider:0.4.3'
Step-3: Ora aggiungi un nuovo file java che dovrebbe estendersi da FileProvider
Come nel mio caso il nome del file è LegacyCompatFileProvider
e il codice al suo interno.
import android.database.Cursor;
import android.net.Uri;
import android.support.v4.content.FileProvider;
import com.commonsware.cwac.provider.LegacyCompatCursorWrapper;
public class LegacyCompatFileProvider extends FileProvider {
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
return(new LegacyCompatCursorWrapper(super.query(uri, projection, selection, selectionArgs, sortOrder)));
}
}
Step-4: creare una cartella denominata "xml"
sotto la cartella "res"
. (Se la cartella è già lì, non è necessario creare). Ora aggiungi un file providers_path.xml
nella cartella xml
.Ecco lo screenshot:
All'interno file del componente aggiuntivo seguenti righe:
<?xml version="1.0" encoding="utf-8"?>
<paths>
<files-path name="stuff" />
</paths>
Step-5: Passare al AndroidManifest.xml
di file e seguenti righe in <application></application>
tag:
<provider
android:name="LegacyCompatFileProvider"
android:authorities="REPLACE_IT_WITH_PACKAGE_NAME"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
Step-6: Ora vai alla classe Attività da wh ere si desidera caricare pdf e aggiungere dopo 1 riga e questi 2 metodi:
private static final String AUTHORITY="REPLACE_IT_WITH_PACKAGE_NAME";
static private void copy(InputStream in, File dst) throws IOException {
FileOutputStream out=new FileOutputStream(dst);
byte[] buf=new byte[1024];
int len;
while ((len=in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
}
private void LoadPdfFile(String fileName){
File f = new File(getFilesDir(), fileName + ".doc");
if (!f.exists()) {
AssetManager assets=getAssets();
try {
copy(assets.open(fileName + ".doc"), f);
}
catch (IOException e) {
Log.e("FileProvider", "Exception copying from assets", e);
}
}
Intent i=
new Intent(Intent.ACTION_VIEW,
FileProvider.getUriForFile(this, AUTHORITY, f));
i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(i);
finish();
}
Ora chiamare LoadPdfFile
metodo e passare il nome del file senza .doc
come nel mio caso "chapter-0"
e si aprirà file doc in applicazione per la lettura doc.
Cosa intendete per aprire il file. Vuoi vedere il file o cosa usare il contenuto del file. – MrWaqasAhmed
per la visualizzazione nella mia app – Narendra
prova Quick office nel mercato Android per aprire ms word, excel, visualizzatore di file pdf – Dinesh