2017-07-17 3 views
1

je code pour obtenir toutes les images à partir externe par MediaStore.Images.Media.EXTERNAL_CONTENT_URI et interne même (mais interne au lieu de externe)MediaStore.Images.Media.INTERNAL_CONTENT_URI retourne vide curseur

Dans mon appareil android version 7.0 toutes les images externes et interne retourné par le curseur externe et comme titre de la question des retours internes curseur vide et je suis 100% que j'ai beaucoup d'images dans interne

Big étrange Prob ce même code fonctionne très bien avec un autre appareil version Android 5.1 rendement interne interne images et retours externes c'est imgs propre alors où est le problème que je ne ' t get it ....

comment même code fonctionne différemment sur 2 appareils réels (pas émulateurs ici)

code des deux curseurs est inférieure à

cursorEx = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
        projection, null, null, DATE_DESC_SORT_ORDER); 

cursorIn = getContentResolver().query(MediaStore.Images.Media.INTERNAL_CONTENT_URI, 
        projection, null, null, DATE_DESC_SORT_ORDER); 

Répondre

0

Probablement vous ne l'avez pas demandé permission dans android 7. C'est obligatoire! Vous pouvez demander la permission ou la cible d'un SDK inférieur à 22.

if (ContextCompat.checkSelfPermission(ProfileActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) 
      != PackageManager.PERMISSION_GRANTED) { 

     // Should we show an explanation? 
     if (ActivityCompat.shouldShowRequestPermissionRationale(ProfileActivity.this, 
       Manifest.permission.READ_EXTERNAL_STORAGE)) { 
      // Explain to the user why we need to read the contacts 
     } 

     ActivityCompat.requestPermissions(ProfileActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 
       MY_PERMISSIONS_REQUEST); 

     // MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE is an 
     // app-defined int constant that should be quite unique 

     return; 
    }else { 
     Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
     intent.setType("image/*"); 
     startActivityForResult(Intent.createChooser(intent, 
       "Selecione a foto "), select_image_code); 
    } 
+0

certainement j'ai demandé la permission qu'il serait autrement jeter une exception ... désolé mais ce n'est pas la solution .. Merci –