2010-11-01 20 views

Répondre

1

Je vois la même chose sur developers.android.com, mais mon émulateur a une application caméra fonctionnelle. Le bouton de la caméra sur l'émulateur lui-même ne fait rien, mais je ne peux y accéder depuis mon application, et il me donne un appareil photo comme ceci:

Android emulator camera

Vous voyez le bouton en bas à gauche prend la image, puis un bouton OK apparaît, ce qui le renvoie à votre code.

Mes paramètres de l'émulateur sont:

  • Android 1.6 (API niveau 4)
  • peau: HVGA
  • Carte SD: 1024M
  • hw.lcd.densite: 160

Je crois que vous avez besoin de la carte SD, pas sûr de rien d'autre.

+0

à quoi ressemble votre xml_activity? Avez-vous un bouton ou juste la surface? – Troj

+0

Je n'ai rien à propos de l'appareil défini dans ma mise en page, et mon AndroidManifest.xml a juste un couple des articles: \t \t < utilise-fonctionnalité \t \t android: name = "android.hardware.camera" /> –

+0

donc vous avez aussi un bouton avec l'écran ci-dessus que j'ai eu? – Troj

1

Vous ne pouvez pas prendre des photos à l'aide de l'émulateur, je l'ai entendu dire qu'il ya une bibliothèque là-bas qui utilise une webcam pour intégrer la fonctionnalité, mais je nai utilisé de sorte qu'il pourrait être un Mith. Donc, désolé de le dire, mais vous avez besoin d'un appareil pour tester cela.

par developers.android.com:

Limitations Emulator Dans cette version , les limites de l'émulateur comprennent:

  • Pas de support pour placer ou recevoir des appels téléphoniques réels. Vous pouvez simuler appels téléphoniques (placés et reçus) à travers la console de l'émulateur, cependant.
  • Aucun support pour les connexions USB
  • Aucune prise en charge de la capture de caméra/vidéo (entrée).
  • Pas de support pour le casque attaché dispositif
  • Pas de support pour la détermination de l'état connecté
  • Pas de support pour déterminer le niveau de charge de la batterie et l'état de charge AC
  • Pas de support pour déterminer insert pour carte SD/éjecter
  • No soutien pour Bluetooth

Hopefuly un jour ils ajouter.

1

Vous pouvez déboguer une application de caméra sur un périphérique physique à l'aide du débogage USB.

Pour prendre et enregistrer l'image, vous aurez besoin d'un rappel semblable à ceci: `

Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {

@Override 
    public void onPictureTaken(byte[] data, Camera camera) { 

     try { 
      File sdTargetDirectory = new File("/sdcard/directory"); 
      sdTargetDirectory.mkdirs(); // make the above directory if it does not exist 
      FileOutputStream fos = null; 
      String fileName = "temp"; 

      Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); 

      fos = new FileOutputStream(sdTargetDirectory.toString() +"/" + fileName + ".jpg"); 

      BufferedOutputStream bos = new BufferedOutputStream(fos); 

      bitmap.compress(CompressFormat.JPEG, 100, bos); 

      bos.flush(); 
      bos.close(); 


     } 
     catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
}; 

Vous pouvez mettre en œuvre que le rappel dans un événement tactile ou un bouton comme celui-ci:

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    switch (event.getAction() & MotionEvent.ACTION_MASK) { 
    case MotionEvent.ACTION_UP: 
     camera.takePicture(null, null, mPictureCallback); 
     break; 
    } 
    return true; 
} 
0

Veuillez activer la caméra dans les paramètres de votre émulateur. Vous devez définir les paramètres de l'émulateur comme:

camera support = yes 

Je pense que cette fonctionnalité est disponible à partir de la version Android 4.0, mais je ne suis pas sûr à ce sujet.