Berechtigungen für eine App die ein Foto macht und anzeigt

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Benutze bildfile. createNewFile() dafür.
    Aber mal ehrlich das hat nicht viel mit android zu tun sondern ist reines Java.
    Das erstellen von Ordnern, Dateien, Schreiben u lesen in Datein solltest du eigentlich bringen und kennen. Ansonsten schau dir das noch mal bei Java an
    Ein Feedback auf Tipps ist auch schön. :P

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von jogimuc ()

  • so das solte laufen.

    nur wnn du ein zweites bild machen willst soltest du voher die datei löschen und wieder erstellen.

    Java-Quellcode

    1. public class AalBild extends AppCompatActivity {
    2. Button btn1;
    3. ImageView iv1;
    4. Intent bildintent;
    5. int RQ = 45;
    6. int RQ2 =23;
    7. int RQ3 =22;
    8. File bildfile;
    9. Uri bilduri;
    10. int Kameracode = 15;
    11. Bitmap bm1;
    12. @Override
    13. protected void onCreate(Bundle savedInstanceState) {
    14. super.onCreate(savedInstanceState);
    15. setContentView(R.layout.activity_aal_bild);
    16. if (ContextCompat.checkSelfPermission(AalBild.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED){
    17. if1();
    18. }else {
    19. ActivityCompat.requestPermissions(AalBild.this, new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE},RQ);
    20. }
    21. File dir = new File(Environment.getExternalStorageDirectory(), "FotoApp");
    22. dir.mkdirs();
    23. bildfile = new File(dir, "bild.png");
    24. try {
    25. bildfile.createNewFile();
    26. } catch (IOException e) {
    27. e.printStackTrace();
    28. }
    29. bilduri = Uri.fromFile(bildfile);
    30. StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
    31. StrictMode.setVmPolicy(builder.build());
    32. btn1 = (Button) findViewById(R.id.btn2);
    33. iv1 = (ImageView) findViewById(R.id.imageView4);
    34. if (bildfile.exists()){
    35. bm1 = BitmapFactory.decodeFile(bildfile.getAbsolutePath());
    36. iv1.setImageBitmap(bm1);
    37. }
    38. btn1.setOnClickListener(new OnClickListener() {
    39. @Override
    40. public void onClick(View v) {
    41. foto();
    42. }
    43. });
    44. }
    45. private void if1(){
    46. if (ActivityCompat.checkSelfPermission(AalBild.this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED){
    47. if2();
    48. }else {
    49. ActivityCompat.requestPermissions(AalBild.this, new String[] {Manifest.permission.READ_EXTERNAL_STORAGE},RQ2);
    50. }
    51. }
    52. protected void if2(){
    53. if (ActivityCompat.checkSelfPermission(AalBild.this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED){
    54. }else{
    55. ActivityCompat.requestPermissions(AalBild.this, new String[] {Manifest.permission.CAMERA},RQ3);
    56. }
    57. }
    58. private void foto(){
    59. try{
    60. bildintent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    61. bildintent.putExtra(MediaStore.EXTRA_OUTPUT, bilduri);
    62. startActivityForResult(bildintent, Kameracode);
    63. }catch(Exception e) {
    64. e.printStackTrace();
    65. Toast.makeText(getApplicationContext(), "Kamera nicht unterstützt!", Toast.LENGTH_SHORT).show();
    66. }
    67. }
    68. @Override
    69. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    70. if (resultCode == RESULT_OK){
    71. if(requestCode == Kameracode){
    72. Toast.makeText(getApplicationContext(), "Bild gespeichert unter: " + bildfile.getAbsolutePath(), Toast.LENGTH_SHORT).show();
    73. bm1 = BitmapFactory.decodeFile(bildfile.getAbsolutePath());
    74. iv1.setImageBitmap(bm1);
    75. }
    76. }
    77. super.onActivityResult(requestCode, resultCode, data);
    78. }
    79. @Override
    80. public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    81. super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    82. if (requestCode == RQ && grantResults.length >0 && grantResults[0] == PackageManager.PERMISSION_GRANTED && requestCode == RQ2 && grantResults.length >0 && grantResults[0] ==PackageManager.PERMISSION_GRANTED && requestCode == RQ3 && grantResults.length >0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
    83. }
    84. }
    85. }
    Alles anzeigen
    Ein Feedback auf Tipps ist auch schön. :P