2010-10-04 15 views
1

voici le problème: j'ai cherché une réponse pour cela et jusqu'à présent je l'ai fait fonctionner pour l'application de caméra personnalisée qui vient avec téléphones htc.en utilisant android intention d'appeler et de recevoir un résultat de l'application de la caméra, peu importe si elle est personnalisée

j'ai le folowing

protected void onActivityResult(int requestCode, int resultCode, Intent data){ 

     if (requestCode == REQUEST_FROM_CAMERA && resultCode == RESULT_OK) { 
       InputStream is=null; 

       File file=mInterface.getTempFile(); 


       try { 
        is=new FileInputStream(file); 
       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } 

       if(is==null){ 
        try { 
         u = data.getData(); 
         is=getContentResolver().openInputStream(u); 
         mInterface.saveStringPreferences(GlobalInterface.URI_SAVENAME, u.toString()); 
        } catch (FileNotFoundException e) { 
         e.printStackTrace(); 
        } 
       } 

       //Now "is" stream contains the required photo, you can process it 
       setImage(is); 

       } 

// et c'est le code à la fonction qui appelle l'intention:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    // intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(mInterface.getTempFile())); 
     startActivityForResult(intent, REQUEST_FROM_CAMERA); 

les fonctions restantes getTempFile() est de créer un fichier temporaire sur /sdcard/blabla.tmp et une fonction pour définir l'image capturée dans une vue d'image. Donc, le problème est que j'ai testé ce code sur la caméra personnalisée sur un téléphone LG et il se bloque. la question est: est-il un moyen d'obtenir un uri pour l'emplacement de l'image (je n'ai pas besoin d'un emplacement de sauvegarde spécifique, il pourrait être le réglage par défaut de l'appareil photo) et il y avait aussi quelques problèmes que je rencontrais obtenir une image de plus petite résolution. J'ai juste besoin d'une image et d'être en mesure de le définir dans un imageView et la méthode de travail pour chaque application de la caméra qui est là, personnalisée ou native indépendamment. Est-ce possible ou dois-je créer une nouvelle classe d'appareil photo pour cela? à mon avis, les applications de l'appareil photo qui viennent avec le téléphone sont plus adaptés au modèle de téléphone, donc je préfère les utiliser contre la construction d'un personnalisé.

tnx.

+0

Utiliser 'adb logcat', DDMS, ou la perspective DDMS Eclipse pour regarder LogCat et examiner la trace de la pile associée à l'accident. Il se peut que vous manquiez quelque chose de «Intent» supplémentaire ou quelque chose que LG attend. Aussi, s'il vous plaît laissez-nous savoir quel modèle de téléphone LG c'est. – CommonsWare

+0

bien la chose est qu'il se bloque lorsque le résultat est renvoyé même si je ne le gère pas! son lg gt540 optimus. mais même si je résous ce problème pour ce modèle il reste encore la question si mon code fonctionnera sur d'autres modèles de téléphone. Cela dit, j'ai décidé et construit une application appareil photo simple qui va gérer la capture d'image. C'est toujours mieux d'avoir un appareil photo simple de travail que d'avoir préinstallé accident. – DArkO

Répondre

-1

Essayez ceci:

Bitmap thumbnail = (Bitmap) data.getExtras().get("data"); 

Source

+0

Vous ne pouvez obtenir une miniature qu'en utilisant ce code. – interlude