Beiträge von Chriscologne

    Sicher das bei "picUri = data.getData()" die picUri nicht null ist? Am besten mal im Debugger prüfen. Poste doch mal den Code wo du die URI an den Intent übergibst.


    Normalerweise gibt "picUri = data.getData()" ein Thumbnail zurück wie du in der Android Doku nachlesen kannst

    Code
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
            Bundle extras = data.getExtras();
            Bitmap imageBitmap = (Bitmap) extras.get("data");
            mImageView.setImageBitmap(imageBitmap);
        }
    }



    Hier wird eine URI an den Intent übergeben

    Code
    Uri photoURI = FileProvider.getUriForFile(this, com.example.android.fileprovider", photoFile);
    
    
    takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
    startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);

    Hallo zusammen,


    ich hätte zwei Fragen, vielleicht hat jemand Erfahrung damit gemacht.


    1) Meine App zeichnet die zurückgelegte Strecke des Benutzer auf und zeigt die Meter an.
    Ich habe den neueren FusedLocation Provider (Google Location Services API) benutzt. Als Vergleich habe auch den älteren Location Manager dafür ausprobiert.
    Allerdings ist mir aufgefallen, dass der FusedLocation Provider sehr stark in der Meterangabe der zurückgelegten Strecke abweicht.
    Hat jemand damit auch so eine Erfahrung gemacht?


    2) Mir ist aufgefallen, dass egal wie ich die Intervalle für die Callback Methode des Listeners "onLocationChanged" setze, blinkt das GPS Symbol oben in der Statusbar immer sekündlich. Kann das sein? Allerdings stimmt das Intervall beim Aufruf der "onLocationChanged" Methode für den jeweiligen Wert. Ich möchte halt sicher gehen, dass nicht unnötig der Akku belastet wird.


    Edit: Habe die Lösung selber gefunden. Der Befehl "googleMap.setMyLocationEnabled(true);" schaltet das GPS dauerhaft ein.



    Code
    locationManager = null;
    locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    criteria.setSpeedRequired(true);
    provider = null;
    provider = locationManager.getBestProvider(criteria, false);
    
    
    locationManager.requestLocationUpdates(provider, 1000*30, 20, this); << egal welche Werte ich hier eingebe, das GPS Symbol blinkt sekündlich.

    Hallo zusammen, danke erstmal für die Antworten.


    Es ist so, dass dieses Bild ein Profilfoto ist, welches nur die eigene App benötigt. Es macht daher keinen Sinn, es in den öffentlichen Speicherbereich (SD-Karte) abzulegen. Wobei es hier auch Unterschiede gibt.


    1) getFilesDir()
    gibt den internen Speicherbereich der eigene App wieder. (Installationverzeichnis der App)


    2) getExternalFilesDir()
    gibt den Speicherbereich auf der SD-Card zurück, der nur für die eigene App zugänglich ist.


    3) getExternalStoragePublicDirectory()
    gibt den öffentlichen Speicherbereich auf der SD-Card zurück, auf dem alle Apps zugreifen können.



    Ich wollte den FileProvider dazu benutzen, um der Kamera App das Recht zu geben, in meinen internen Speicher zu schreiben. Leider klappt es nur mit den SD-Card Bereichen.


    Zum Thema Verschwendung von internen SSpeicherbereich ist zu sagen, dass das Profilfoto auf 0.5 Mb Komprimiert wird bevor es gespeichert wird. Wir wollen doch keine "Out of Memory exception" riskieren ;)


    Schönen Abend noch

    Hallo zusammen,


    ich habe folgendes Problem: Ich möchte, dass eins mit der Kamera geschossenes Foto im internal Storage meiner App abgespeichert wird. Die Kamera App hat jedoch keine Schreibrechte in meinen Ordner zu schreiben, daher benutze ich einen FileProvider um mit einer URI den Zugriff zu erlauben. In der Android Doku wird es so beschrieben. Jedoch funktioniert das nicht. Der Einzige Unterschied zum Beispiel aus der Android Doku ist, dass dort " File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES)" verwendet wird, was ich jedoch nicht möchte, da der Befehl auf die SD-Karte zugreift.
    Kann mir da jemand weiterhelfen?

    Code
    <?xml version="1.0" encoding="utf-8"?>
    <paths>
        <files-path name="imagepath" path="images/"/>
    </paths>
    Code
    <provider
                android:name="android.support.v4.content.FileProvider"
                android:authorities="de.mypackage.fileprovider"
                android:exported="false"
                android:grantUriPermissions="true">
                <meta-data
                    android:name="android.support.FILE_PROVIDER_PATHS"
                    android:resource="@xml/imagepath" />
            </provider>