web-dev-qa-db-fra.com

Comment copier des images / fichiers dans le presse-papiers dans Android? Toutes méthodes / étapes alternatives pour l'obtenir

Je veux copier des images/fichiers dans le presse-papiers. Je l'ai googlé mais je n'ai trouvé aucune alternative/suggestion à cela. mais j'ai vu des applications faites dans l'App Store. veulent savoir comment y parvenir.

Quelqu'un s'il vous plaît aidez-moi OR donnez-moi quelques suggestions?

j'ai trouvé cela lien mais maintenant je sais comment obtenir cette fonctionnalité.

7

Pour plus de détails sur la façon de copier/coller une image/un fichier dans Android, lisez Android document officiel de ici .

En bref, copier/coller image/fichier suit les étapes ci-dessous:

  1. La source de données (l'application à partir de laquelle vous copiez les données) doit créer un ContentProvider et générer un Uri qui peut être utilisé pour récupérer l'image/le fichier. L'URI ressemble au contenu: // [nom du package d'application]/chemin/vers/fichier
  2. La destination de données (l'application dans laquelle vous copiez les données) récupère l'URI de ClipboardManager et de l'utilisateur ContentResolver pour récupérer l'image/le fichier.

Comme vous pouvez le voir, le copier/coller ne peut être réalisé que lorsque les deux applications fonctionnent ensemble. Malheureusement, la plupart des applications Android Android ne suivent pas cette règle.

Par exemple, l'application Google docs Android, lorsque vous copiez une image dans Google docs, elle génère un Uri non valide. Vous ne pouvez pas imaginer que même google le fasse ne pas suivre Android règle officielle de copier/coller.

Et j'ai testé de nombreuses applications de l'éditeur de flux principal, y compris Microsoft Word , evernote , elles ne prennent même pas en charge la copie d'image.

Grâce à mon test, j'ai trouvé que copier/coller des images/fichiers fonctionne sur certains téléphones Samsung Android (vous pouvez copier l'image à partir du navigateur en stock dans l'application de message sur Samsung Galaxy Note3). Cependant, Samsung ne suit pas Android framework copier/coller. Ils implémentent le copier/coller en utilisant leur propre mécanisme, ce qui signifie que les applications tierces ne peuvent pas accéder aux données du clip.

Par conséquent, je pense qu'il y a encore un long chemin à parcourir, pour que les applications Android pour suivre le Android framework officiel copier/coller).

Pour parler de vos besoins, je suppose que vous voulez vous comporter comme la source de données de copie. Bien que votre propre application prenne en charge la copie , tant que l'application de destination de copie des données ne suit pas le cadre copier/coller, vous ne pouvez pas accomplir la coller action.

7
cmoaciopm

Je ne pense pas que vous puissiez copier des fichiers/images dans le presse-papiers. Vous pouvez faire quelque chose comme ça:

  1. Créez une application de navigateur de fichiers quelque chose comme (ES Explorer). Vous pouvez créer l'application Navigateur de fichiers en utilisant des fournisseurs de contenu (pas sûr) et en affichant les dossiers/fichiers en mode liste.

  2. Supposons dans l'application qu'un élément dans ListView indique un fichier/image. En appuyant longuement, il ouvre une fenêtre contextuelle. avec certaines options comme Couper/Copier/Déplacer/Supprimer. Comme vous avez le chemin absolu de chaque fichier/image. Vous pouvez utiliser Java File Handling pour:

a) Supprimer un fichier.

b) Déplacez-le d'un endroit à un autre

c) Création d'une copie de fichier

etc..

2
Ashish Rathee

Android ClipData.Item ne prend en charge que Text & Uri. Vous ne pouvez donc pas obtenir de copie des données d'image sur le presse-papiers.

Une solution possible peut être d'enregistrer les données d'image dans une sorte de stockage et de copier l'URI de contenu de la même chose. Cependant, cela ne vous facilitera pas la vie, car les données copiées seront disponibles pour tous les éditeurs qui peuvent obtenir des données de ClipboardManager , Ils ne savent peut-être pas comment gérer ce type de données.

Si vous souhaitez copier/coller dans vos applications, je vous proposerai d'écrire votre propre version de ClipboardManager et de faire ce que vous voulez :)

2
Akhil