1. Extremefall, 27.04.2012 #1
    Extremefall

    Extremefall Threadstarter Android-Hilfe.de Mitglied

    Hallo,
    ich habe eine App, die momentan ein Foto erzeugt, ohne dass ein Vorschaubild angezeigt wird. Leider klappt es nur, wenn die App den Fokus hat. Nun habe ich schon einige Funktionen, die auch funktionieren, wenn die App im Hintergrund läuft. Ich möchte also die App im Hintergrund laufen lassen und dann ein Foto machen.

    Mein Code bisher:
    PHP:
    [LEFT]@Override
    public void surfaceChanged(SurfaceHolder arg0int arg1int arg2int arg3

    mHandlerFoto.removeCallbacks(mUpdateTimeTaskFoto); 
    mHandlerFoto.postDelayed(mUpdateTimeTaskFoto10000);

    [/
    LEFT]

    [
    LEFT]@Override 
    public void surfaceCreated(SurfaceHolder holder

    // The Surface has been created, acquire the camera and tell it where 
    // to draw the preview. 
    mCamera Camera.open(); 
    try { 
    mCamera.setPreviewDisplay(holder); 

    } catch (
    IOException exception) { 
    mCamera.release(); 
    mCamera null



    @
    Override 
    public void surfaceDestroyed(SurfaceHolder holder

    //stop the preview 
    mCamera.stopPreview(); 
    //release the camera 
    mCamera.release(); 
    //unbind the camera from this object 
    mCamera null; [/LEFT]

    [
    LEFT
    private 
    Runnable mUpdateTimeTaskFoto = new Runnable() { 
    public 
    void run() { 
    //get camera parameters 
    parameters mCamera.getParameters(); 

    //set camera parameters 
    mCamera.setParameters(parameters); 
    mCamera.startPreview(); 

    //sets what code should be executed after the picture is taken 
    Camera.PictureCallback mCall = new Camera.PictureCallback() 

    @
    Override 
    public void onPictureTaken(byte[] dataCamera camera

    //decode the data obtained by the camera into a Bitmap 
    bmp BitmapFactory.decodeByteArray(data0data.length); 
    //set the iv_image 

    String path Environment.getExternalStorageDirectory().toString(); 
    OutputStream fOut null
    File file = new File(path"FitnessGirl.jpg"); 
    try {
    fOut = new FileOutputStream(file);


    bmp.compress(Bitmap.CompressFormat.JPEG85fOut); 
    fOut.flush(); 
    fOut.close(); 

    MediaStore.Images.Media.insertImage(getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName());

    catch (
    Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();




    }; 

    mCamera.takePicture(nullnullmCall); 
    }[/
    LEFT]
    };
    Habe ich also die Möglichkeit, bei minimierter App ein Foto zu schießen?
     
  2. miha, 27.04.2012 #2
    miha

    miha Fortgeschrittenes Mitglied

    Genau mein Thema :)
    Geht nur auf manchen Geräten indem du Preview null setzt.
    Ausserdem funktionieren Autofokus und Co nur bei sichtbarer Previewsurface. 1x1 Pixel Preview in transparenter, durchlässiger Activity als der alte Trick vieler Spycams geht aber auch nicht mehr auf allen Geräten. 8x8 geht auf den meisten wohl noch aber ist nicht so richtig Hintergrund.
    Ausserdem noch ein Problem der Shuttersound der trotz Tricks ohne Root nicht überall auszuschalten ist.
    Wenn du eine Lösung findest würde ich mich freuen sie zu hören.
     
    Zuletzt bearbeitet: 27.04.2012
    Extremefall gefällt das.
  3. Extremefall, 27.04.2012 #3
    Extremefall

    Extremefall Threadstarter Android-Hilfe.de Mitglied

    Und wie geht das? Ich bin auf diese Quelle gestoßen:
    Handy Codeworks » Blog Archive » Android Take Picture without Preview

    Leider weiß ich nicht, was ich als Parameter der Methode übergeben muss. Könntet ihr mir sagen, wie ich die Objekte erzeuge? Vielleicht auch mit Code. Geht es wohl auf dem Galaxy S2 2.3.3? Oder welche Alternativen habe ich? Kann ich nicht auch bei einer App, die im Hintergrund läuft, wieder den Fokus darauf setzen und direkt dannach minimieren? Wenn ja, wie?
     
  4. Extremefall, 27.04.2012 #4
    Extremefall

    Extremefall Threadstarter Android-Hilfe.de Mitglied

    Leider habe ich das Problem, dass die Activity bei einer transparenten nicht im Hintergrund läuft. Somit würde ein klick zum minimieren die Anwendung schließen.

    Jetzt denke ich mir, dass ich doch einfach eine transparente Activity mache und dann wenn das Foto geschossen werden soll, den Fokus auf die App lege. Geht so etwas?
    Wie lege ich auf eine App, die im Hintergrund läuft, den Fokus?
     
    Zuletzt bearbeitet: 27.04.2012
  5. miha, 27.04.2012 #5
    miha

    miha Fortgeschrittenes Mitglied

    Indem du sie per Intent startest? Zum Beispiel vom Service aus. Ob die Activity noch aktiv ist weisst du ja sonst garnicht. Activity im Hintergrund gibt es bei Android eigentlich nicht. Android killt wenn es lustig ist.

    Transparente Activity (Translucent.NoTitleBar) reicht evtl. nicht. Was ich noch setze sind die hier:
    FLAG_NOT_FOCUSABLE, FLAG_NOT_TOUCH_MODAL, FLAG_NOT_TOUCHABLE, FLAG_WATCH_OUTSIDE_TOUCH,
    Und das hier löschen: FLAG_DIM_BEHIND

    Ein Problem hat das Ganze noch: Leider kann das picture Callback manchmal einfach so ausbleiben. Dann sitzt du da mit dieser Activity die nicht weggeht ...
     
    Zuletzt bearbeitet: 27.04.2012
  6. Extremefall, 27.04.2012 #6
    Extremefall

    Extremefall Threadstarter Android-Hilfe.de Mitglied

    Mache ich da bei Intent irgendetwas falsch?
    Code:
    [LEFT]appcontext = getApplicationContext();
    Intent intent = new Intent(appcontext, LocationActivity.class); 
    intent.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
    intent.addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
    intent.addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
    intent.addFlags(WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);[/LEFT]
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); 
    
     
Die Seite wird geladen...
Similar Threads Forum Datum
googleadservice.com Android Allgemein Donnerstag um 17:13 Uhr
App zur Anzeige von verbleibenden Freiminuten und Frei-SMS Tools Donnerstag um 20:38 Uhr
Foto machen und beschriften Foto und Multimedia Freitag um 21:08 Uhr
Aquaris X Performance in Kamera-App bq Aquaris X / X Pro Forum Samstag um 16:11 Uhr
Wo ist der App Ordner? Huawei P10 Forum Sonntag um 16:14 Uhr
Suche App/Launcher für Android 2.0 Android Wear Geräte Gestern um 08:37 Uhr
Display-Wischgeste nach unten führt nicht zur App-Suche Huawei P9 Lite Forum Gestern um 09:45 Uhr
Die neue Android-Hilfe App ist ab sofort erhältlich Anregungen zum Forum Gestern um 10:53 Uhr
Es gibt eine nagelneue Android-Hilfe App Android News Gestern um 11:16 Uhr
Moto G4 Kamera App löst erst nach Sekunden aus Motorola Moto G4 Plus Forum Gestern um 17:13 Uhr