Soru Images.Media.insertImage neden null return null


MediaStore.Images.Media.insertImage yöntemini çalıştırdığım bazı kodlar var (bir dosya adından değil, bir kaynaktan ekleme), Bu kod görüntüyü MediaStore'a kaydeder ve resmin uri değerini döndürür. Herhangi bir nedenden dolayı başarısız olduğunda uri yerine null döndüreceğini biliyorum. Bu görüntü birçok kişi tarafından birçok kez indirildi ve her defasında bir kez bu yöntemden null döndürecek. Bana hiç böyle bir şey yapmadım, bu yüzden neler olduğu hakkında hiçbir fikrim yok. Bunun neden olabileceği sebepler neler? Başka var posta Aynı sorunla birlikte cevap, MediaStore için kaynak koduna bir bağlantıdır, ancak bu bağlantı, bağlantının kullanılamıyor olduğunu belirten bir sayfaya gider. Herhangi bir yardım takdir edilecektir. Teşekkürler.

SD kartımı çıkardıktan sonra bu hatayı aldım, bu yüzden bir neden olabileceğini biliyorum, emin değilim ama kart doluysa bunun olacağını da hissediyorum. Hala sadece başka bir sebep olabilir mi diye merak ediyorum.


17
2017-09-01 19:57


Menşei




Cevaplar:


Bazı Android sürümlerinde bir / sdcard / DCIM / Kamera dizininiz olmadığında gerçekleşmiş gibi görünüyor. Bu dizinin oluşturulması (ve izne sahip olmak) benim için problemi çözdü.


16
2018-01-29 20:37



Bir cihazın sıfırlanmasından sonra da oldu. Varsayılan Android kamera uygulamasına sahip bir fotoğraf çekmek, klasörü oluşturdu. Bu sayede görüntüleri kodumdan ekleyebilirsiniz. - Mark Beaton


MediaStore.Images.Media.insertImage aslında görüntüyü kaydetmek için harici depolama alanına erişiyor.

Uygulamanızın başarısız olmasına neden olabilecek bazı önemli hatırlatıcılar:

  1. Yığın Depolama modunda bir USB bağlantısı SD kart kullanımını engelleyecektir.

  2. Bir SD karta erişilemeyen başka etkenler de olabilir, bu yüzden önce bir dosya tarayıcısı kullanarak SD karta erişebildiğinizden emin olun.

  3. İzinlerinizin android.permission.WRITE_EXTERNAL_STORAGE ile doğru bir şekilde yapılandırıldığından emin olun.

InsertImage'den null aldığım için, bunu tam olarak burada yayınladım ve nedeni 1.


8
2017-08-24 19:13





Yeni bir sdcard görüntüsü olan bir emülatörde testler yaparken bu konuya rastladım. Sorunu yaratarak çözebildim /sdcard/Pictures ile

new File("/sdcard/Pictures").mkdirs();


5
2017-10-29 18:56





Böyle bir sorunla karşılaştığımda izinler ekledim:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

2
2018-03-28 15:43



İkinci izin hiçbir şey yapmıyor - büyük harflerle olmalı READ_EXTERNAL_STORAGE - Richard Le Mesurier


Ben yürütüyordum MediaStore.Images.Media.insertImage kullanıcı izni almadan önce WRITE_EXTERNAL_STORAGE ve READ_EXTERNAL_STORAGE null bir yola neden olan

Dolayısıyla, kullanıcının izin için izin verdiğini ve ardından görüntü depoladığından emin olun.


1
2017-09-27 12:23





Bildirim dosyanızda izinler eklediğinizden emin olun.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.read_external_storage" />

Ardından bu kodu aramadan önce ekleyin

MediaStore.Images.Media.insertImage

File sdcard = Environment.getExternalStorageDirectory();
    if (sdcard != null) {
        File mediaDir = new File(sdcard, "DCIM/Camera");
        if (!mediaDir.exists()) {
            mediaDir.mkdirs();
        }
    }

1
2018-06-13 11:20



İkinci izin hiçbir şey yapmıyor - büyük harflerle olmalı READ_EXTERNAL_STORAGE - Richard Le Mesurier