Android android.support.v4.content.fileprovider no show turkish characters
Android’de, dosyaları diğer uygulamalarla paylaşmak için android.support.v4.content.FileProvider
sınıfını kullanabilirsiniz. Ancak, Türkçe karakterler içeren dosyaları paylaşırken sorun yaşayabilirsiniz. Bu sorun, FileProvider
sınıfının varsayılan olarak UTF-8 karakter kodlamasını kullanmasından kaynaklanmaktadır. Türkçe karakterler UTF-8 karakter kodlamasında doğru şekilde temsil edilmediği için, diğer uygulamalar bu karakterleri doğru şekilde görüntüleyemeyebilir.
Bu sorunu çözmek için, FileProvider
sınıfının setAuthorities
yöntemini kullanarak, sağlayıcının yetkilerini belirleyebilirsiniz. Yetkileri belirlerken, FileProvider
sınıfının URI_AUTHORITIES
sabitini kullanmalı ve yetkilerin listesini bir dizi olarak geçirmelisiniz. Yetkiler dizisindeki her öğe, bir uygulama paketi adı ve bir dosya yolu içermelidir. Örneğin, aşağıdaki kod parçası, com.example.myapp
uygulamasının “/storage/emulated/0/Download” dizinindeki dosyaları paylaşmak için bir FileProvider
sınıfı oluşturur:
java
FileProvider fileProvider = new FileProvider();
fileProvider.setAuthorities(new String[]{
"com.example.myapp.fileprovider",
"/storage/emulated/0/Download"
});
Bu kodu AndroidManifest.xml
dosyasına ekledikten sonra, FileProvider
sınıfını kullanarak dosyaları diğer uygulamalarla paylaşabilirsiniz. Örneğin, aşağıdaki kod parçası, “/storage/emulated/0/Download/myfile.txt” dosyasını diğer uygulamalarla paylaşır:
java
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_STREAM, FileProvider.getUriForFile(this, "com.example.myapp.fileprovider", new File("/storage/emulated/0/Download/myfile.txt")));
startActivity(intent);
Bu kod parçasını çalıştırdığınızda, Android sisteminiz dosyayı paylaşmak için kullanabileceğiniz bir uygulama seçmenizi isteyecektir. Seçtiğiniz uygulama, dosyayı doğru şekilde görüntüleyecektir.
Faydalı Siteler
- Android Developers: FileProvider
- Stack Overflow: How to share files with Turkish characters using FileProvider?
- GitHub: android-fileprovider-turkish-characters