forum FrAndroid

Aller au contenu

Change

hitech regie

Démarrer intent pour lire un PDF depuis une URL


  • Vous ne pouvez pas répondre à ce sujet
46 réponses à ce sujet

#41
gogui63

gogui63

    Android à poil bleu

  • Membres
  • 256 messages
  • LieuClermont-Ferrand
Merci j'ai réussi a associer un item avec un PDF mais j'ai erreur ( force close à chaque fois que je clique sur ma 2eme ListView)

Voila le code en question ( aucune erreur sous eclipse pourtant )

  maListViewPerso2.setOnItemClickListener(new OnItemClickListener() {
		   public void onItemClick(AdapterView<?> a, View v, int position, long id) {
			 HashMap<String, String> map = (HashMap<String, String>) maListViewPerso2.getItemAtPosition(position);
			 String nomFichierDansAsset = map.get("file");
			 String nomFichierTemp = "list1.pdf";
			
			 if (copyAssetToTempFile(nomFichierDansAsset, nomFichierTemp)) {
			  try {
				String name = getFileStreamPath(nomFichierTemp).getAbsolutePath();
				Uri uri = Uri.parse("file://" + name);
				Intent intent = new Intent(Intent.ACTION_VIEW);
				intent.setDataAndType(uri, "application/pdf");
				startActivity(intent);
			  } catch (ActivityNotFoundException e) {
				// Cas d'erreur si pas de lecteur PDF installé
				Log.d("xx", "Erreur affichage PDF", e);
			  }
			}
		  }
		 });
	  
		maListViewPerso3.setOnItemClickListener(new OnItemClickListener() {
		 public void onItemClick(AdapterView<?> a, View v, int position, long id) {
		   HashMap<String, String> map = (HashMap<String, String>) maListViewPerso3.getItemAtPosition(position);
		   String nomFichierDansAsset = map.get("file");
		   String nomFichierTemp = "list3";
		  
		   if (copyAssetToTempFile(nomFichierDansAsset, nomFichierTemp)) {
			try {
			  String name = getFileStreamPath(nomFichierTemp).getAbsolutePath();
			  Uri uri = Uri.parse("file://" + name);
			  Intent intent = new Intent(Intent.ACTION_VIEW);
			  intent.setDataAndType(uri, "application/pdf");
			  startActivity(intent);
			} catch (ActivityNotFoundException e) {
			  // Cas d'erreur si pas de lecteur PDF installé
			  Log.d("xx", "Erreur affichage PDF", e);
			}
		  }
		}
		});
		 };

private boolean copyAssetToTempFile(String nomFichierAsset,
	 String nomFichierTemp) {
	 boolean result = true;
	 try {
	   byte[] buffer = new byte[512];
	   FileOutputStream fos = openFileOutput(nomFichierTemp, MODE_WORLD_READABLE);
	   InputStream is = getAssets().open(nomFichierAsset);
	   int bytesRead = is.read(buffer);
	   while (bytesRead > 0) {
		 fos.write(buffer, 0, bytesRead);
		 bytesRead = is.read(buffer);
	   }
	   fos.close();
	   is.close();
	 } catch (FileNotFoundException e) {
	   // Cas d'erreur de création de fichier
	   Log.d("xx", "Erreur creation fichier ", e);
	   result = false;
	 } catch (IOException e) {
	   // Cas d'erreur de lecture de fichier
	   Log.d("xx", "Erreur lecture fichier", e);
	   result = false;
	 }
	 return result;
   }  
}

  
  

Il vous faut le Logcat ?

Modifié par gogui63, 19 May 2012 - 21:54.

Un petit aperçu de ma home sur milestone :D

http://img812.images...1006141437.jpg/

#42
chpil

chpil

    RdS Développement

  • Responsables de section
  • 569 messages
  • LieuRennes
Bien évidemment que la trace de l'exception qui se produit quand ça plante serait d'une grande utilité pour comprendre quel est le problème...
ZTE Link - ZTE Blade

#43
gogui63

gogui63

    Android à poil bleu

  • Membres
  • 256 messages
  • LieuClermont-Ferrand
Le problème c'est que le Logcat me dit qu'il y a des erreur mais il n'y a pas de ligne "caused by .... " je vais essayer de reprovoquer l'erreur et vous copie le logcat

le voila :

05-21 09:00:53.562: D/dalvikvm(219): GC freed 511 objects / 46016 bytes in 323ms
05-21 09:00:53.573: D/ddm-heap(219): Got feature list request
05-21 09:01:44.701: D/xx(219): Erreur affichage PDF
05-21 09:01:44.701: D/xx(219): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///data/data/com.androiddev.tab/files/list1.pdf typ=application/pdf }
05-21 09:01:44.701: D/xx(219):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408)
05-21 09:01:44.701: D/xx(219):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
05-21 09:01:44.701: D/xx(219):  at android.app.Activity.startActivityFromChild(Activity.java:2989)
05-21 09:01:44.701: D/xx(219):  at android.app.Activity.startActivityForResult(Activity.java:2769)
05-21 09:01:44.701: D/xx(219):  at android.app.Activity.startActivity(Activity.java:2855)
05-21 09:01:44.701: D/xx(219):  at com.androiddev.tab.Tab2$2.onItemClick(Tab2.java:236)
05-21 09:01:44.701: D/xx(219):  at android.widget.AdapterView.performItemClick(AdapterView.java:284)
05-21 09:01:44.701: D/xx(219):  at android.widget.ListView.performItemClick(ListView.java:3285)
05-21 09:01:44.701: D/xx(219):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640)
05-21 09:01:44.701: D/xx(219):  at android.os.Handler.handleCallback(Handler.java:587)
05-21 09:01:44.701: D/xx(219):  at android.os.Handler.dispatchMessage(Handler.java:92)
05-21 09:01:44.701: D/xx(219):  at android.os.Looper.loop(Looper.java:123)
05-21 09:01:44.701: D/xx(219):  at android.app.ActivityThread.main(ActivityThread.java:4363)
05-21 09:01:44.701: D/xx(219):  at java.lang.reflect.Method.invokeNative(Native Method)
05-21 09:01:44.701: D/xx(219):  at java.lang.reflect.Method.invoke(Method.java:521)
05-21 09:01:44.701: D/xx(219):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
05-21 09:01:44.701: D/xx(219):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
05-21 09:01:44.701: D/xx(219):  at dalvik.system.NativeStart.main(Native Method)
05-21 09:01:47.543: D/xx(219): Erreur affichage PDF
05-21 09:01:47.543: D/xx(219): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///data/data/com.androiddev.tab/files/list1.pdf typ=application/pdf }
05-21 09:01:47.543: D/xx(219):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408)
05-21 09:01:47.543: D/xx(219):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
05-21 09:01:47.543: D/xx(219):  at android.app.Activity.startActivityFromChild(Activity.java:2989)
05-21 09:01:47.543: D/xx(219):  at android.app.Activity.startActivityForResult(Activity.java:2769)
05-21 09:01:47.543: D/xx(219):  at android.app.Activity.startActivity(Activity.java:2855)
05-21 09:01:47.543: D/xx(219):  at com.androiddev.tab.Tab2$2.onItemClick(Tab2.java:236)
05-21 09:01:47.543: D/xx(219):  at android.widget.AdapterView.performItemClick(AdapterView.java:284)
05-21 09:01:47.543: D/xx(219):  at android.widget.ListView.performItemClick(ListView.java:3285)
05-21 09:01:47.543: D/xx(219):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640)
05-21 09:01:47.543: D/xx(219):  at android.os.Handler.handleCallback(Handler.java:587)
05-21 09:01:47.543: D/xx(219):  at android.os.Handler.dispatchMessage(Handler.java:92)
05-21 09:01:47.543: D/xx(219):  at android.os.Looper.loop(Looper.java:123)
05-21 09:01:47.543: D/xx(219):  at android.app.ActivityThread.main(ActivityThread.java:4363)
05-21 09:01:47.543: D/xx(219):  at java.lang.reflect.Method.invokeNative(Native Method)
05-21 09:01:47.543: D/xx(219):  at java.lang.reflect.Method.invoke(Method.java:521)
05-21 09:01:47.543: D/xx(219):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
05-21 09:01:47.543: D/xx(219):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
05-21 09:01:47.543: D/xx(219):  at dalvik.system.NativeStart.main(Native Method)
05-21 09:01:48.403: D/xx(219): Erreur affichage PDF
05-21 09:01:48.403: D/xx(219): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///data/data/com.androiddev.tab/files/list1.pdf typ=application/pdf }
05-21 09:01:48.403: D/xx(219):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408)
05-21 09:01:48.403: D/xx(219):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
05-21 09:01:48.403: D/xx(219):  at android.app.Activity.startActivityFromChild(Activity.java:2989)
05-21 09:01:48.403: D/xx(219):  at android.app.Activity.startActivityForResult(Activity.java:2769)
05-21 09:01:48.403: D/xx(219):  at android.app.Activity.startActivity(Activity.java:2855)
05-21 09:01:48.403: D/xx(219):  at com.androiddev.tab.Tab2$2.onItemClick(Tab2.java:236)
05-21 09:01:48.403: D/xx(219):  at android.widget.AdapterView.performItemClick(AdapterView.java:284)
05-21 09:01:48.403: D/xx(219):  at android.widget.ListView.performItemClick(ListView.java:3285)
05-21 09:01:48.403: D/xx(219):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640)
05-21 09:01:48.403: D/xx(219):  at android.os.Handler.handleCallback(Handler.java:587)
05-21 09:01:48.403: D/xx(219):  at android.os.Handler.dispatchMessage(Handler.java:92)
05-21 09:01:48.403: D/xx(219):  at android.os.Looper.loop(Looper.java:123)
05-21 09:01:48.403: D/xx(219):  at android.app.ActivityThread.main(ActivityThread.java:4363)
05-21 09:01:48.403: D/xx(219):  at java.lang.reflect.Method.invokeNative(Native Method)
05-21 09:01:48.403: D/xx(219):  at java.lang.reflect.Method.invoke(Method.java:521)
05-21 09:01:48.403: D/xx(219):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
05-21 09:01:48.403: D/xx(219):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
05-21 09:01:48.403: D/xx(219):  at dalvik.system.NativeStart.main(Native Method)
05-21 09:01:49.192: D/AndroidRuntime(219): Shutting down VM
05-21 09:01:49.192: W/dalvikvm(219): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
05-21 09:01:49.192: E/AndroidRuntime(219): Uncaught handler: thread main exiting due to uncaught exception
05-21 09:01:49.202: E/AndroidRuntime(219): java.lang.NullPointerException
05-21 09:01:49.202: E/AndroidRuntime(219):  at android.content.res.AssetManager.openAsset(Native Method)
05-21 09:01:49.202: E/AndroidRuntime(219):  at android.content.res.AssetManager.open(AssetManager.java:299)
05-21 09:01:49.202: E/AndroidRuntime(219):  at android.content.res.AssetManager.open(AssetManager.java:273)
05-21 09:01:49.202: E/AndroidRuntime(219):  at com.androiddev.tab.Tab2.copyAssetToTempFile(Tab2.java:258)
05-21 09:01:49.202: E/AndroidRuntime(219):  at com.androiddev.tab.Tab2.access$1(Tab2.java:250)
05-21 09:01:49.202: E/AndroidRuntime(219):  at com.androiddev.tab.Tab2$1.onItemClick(Tab2.java:204)
05-21 09:01:49.202: E/AndroidRuntime(219):  at android.widget.AdapterView.performItemClick(AdapterView.java:284)
05-21 09:01:49.202: E/AndroidRuntime(219):  at android.widget.ListView.performItemClick(ListView.java:3285)
05-21 09:01:49.202: E/AndroidRuntime(219):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640)
05-21 09:01:49.202: E/AndroidRuntime(219):  at android.os.Handler.handleCallback(Handler.java:587)
05-21 09:01:49.202: E/AndroidRuntime(219):  at android.os.Handler.dispatchMessage(Handler.java:92)
05-21 09:01:49.202: E/AndroidRuntime(219):  at android.os.Looper.loop(Looper.java:123)
05-21 09:01:49.202: E/AndroidRuntime(219):  at android.app.ActivityThread.main(ActivityThread.java:4363)
05-21 09:01:49.202: E/AndroidRuntime(219):  at java.lang.reflect.Method.invokeNative(Native Method)
05-21 09:01:49.202: E/AndroidRuntime(219):  at java.lang.reflect.Method.invoke(Method.java:521)
05-21 09:01:49.202: E/AndroidRuntime(219):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
05-21 09:01:49.202: E/AndroidRuntime(219):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
05-21 09:01:49.202: E/AndroidRuntime(219):  at dalvik.system.NativeStart.main(Native Method)
05-21 09:01:49.222: I/dalvikvm(219): threadid=7: reacting to signal 3
05-21 09:01:49.232: E/dalvikvm(219): Unable to open stack trace file '/data/anr/traces.txt': Permission denied

Modifié par gogui63, hier, 10:04.

Un petit aperçu de ma home sur milestone :D

http://img812.images...1006141437.jpg/

#44
chpil

chpil

    RdS Développement

  • Responsables de section
  • 569 messages
  • LieuRennes
Tu as un NullPointerException, lorsque ton application essaye d'ouvrir le fichier asset sélectionné. As-tu bien associé une donnée "file" à l'élément de ta liste, dans la HashMap lorsque tu construis l'Adapter ?

Modifié par chpil, hier, 16:49.

ZTE Link - ZTE Blade

#45
gogui63

gogui63

    Android à poil bleu

  • Membres
  • 256 messages
  • LieuClermont-Ferrand
Merci en effet une erreur vraiment bête , à vouloir chercher compliqué ,c'etait simplement que j'avais mis
map.put("file", "S4.pdf");
au lieu de
map1.put("file", "S4.pdf");
Voila et ce petit "1" changé tout . Des fois ça netient à rien une erreur enfin merci encore chpil

Voila application terminé, je tient encore à le dire , je te remercie beaucoup Chpil , il faut le reconnaître sans toi j'aurai déjà abandonné ...
Je peux te mettre dans les crédit de mon application ? Ça serait un petit merci pour tout ce que tu as fait, Pseudo ou ton vrai nom contact MP

Modifié par gogui63, hier, 12:05.

Un petit aperçu de ma home sur milestone :D

http://img812.images...1006141437.jpg/

#46
chpil

chpil

    RdS Développement

  • Responsables de section
  • 569 messages
  • LieuRennes
Merci pour les crédits :) Mais quelque chose comme "Réalisée avec l'aide de la communauté des développeurs de FrAndroid" me paraît tout aussi bien
ZTE Link - ZTE Blade

#47
gogui63

gogui63

    Android à poil bleu

  • Membres
  • 256 messages
  • LieuClermont-Ferrand
Comme tu préfère mais je tenais à mettre à quelque chose ;)
Un petit aperçu de ma home sur milestone :D

http://img812.images...1006141437.jpg/