1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  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...
Ähnliche Themen Forum Datum
[OFFEN] Android app selber entwickeln mit Bluetooth Android App Entwicklung Freitag um 12:01 Uhr
[ERLEDIGET] App über href starten Android App Entwicklung 28.09.2017
[OFFEN] Kostenpflichtige App für Beta-Test hochladen Android App Entwicklung 13.09.2017
[OFFEN] App startet nicht... Android App Entwicklung 10.09.2017
[OFFEN] Sind Notifications in einer Webview App möglich? Android App Entwicklung 10.09.2017
[OFFEN] Möchte eine App für Entrümpelungen entwickeln. Android App Entwicklung 08.09.2017
[ERLEDIGT] Alpha-Version meiner App nicht mit S8 kompatibel Android App Entwicklung 06.09.2017
[ERLEDIGT] Verbindung zu MS SQL DB von App aus möglich? Android App Entwicklung 05.09.2017
[OFFEN] App schließt nach Öffnen sofort Android App Entwicklung 04.09.2017
[ERLEDIGT] MIT APP Inventor paralleler Tastendruck Android App Entwicklung 23.08.2017
Du betrachtest das Thema "Foto machen bei App, die im Hintergrund läuft?" im Forum "Android App Entwicklung",