Могу ли я создать собственный образ MIME-типа в Android? - PullRequest
1 голос
/ 15 августа 2011

Мое приложение создало пользовательский файл .PNG, который обратно совместим со стандартным .PNG, но я бы хотел, чтобы мое приложение могло распознавать мои специальные .PNG (а не по умолчанию для галереи). После создания изображения я пытаюсь зарегистрировать его с пользовательским типом MIME, но они все еще сканируются как обычные PNG.

File file = new File("/mnt/sdcard/custom.png");
//now scan the file into the content database
MediaScannerConnection.scanFile(this,
            new String[] { file.toString() }, new String[] { "image/x-custom" },
                new MediaScannerConnection.OnScanCompletedListener() {
            public void onScanCompleted(String path, Uri uri) {
                Log.i("ExternalStorage", "Scanned " + path + ":");
                Log.i("ExternalStorage", "-> uri=" + uri);

                ContentResolver cr = getContentResolver();
                String mime = cr.getType(uri);
                //mime returns image/png, not image/x-custom :(        
            }

Любые идеи о том, как заставить Android распознавать мой пользовательский тип MIME и / или разрешать моему приложению распознавать расширенный .PNG?

Ответы [ 3 ]

0 голосов
/ 15 августа 2011

Вы должны иметь некоторую активность, которая регистрирует себя (в манифесте) как способную обрабатывать файлы .png (или ваш mime-тип).Проблема с пользовательскими файлами MIME-типов заключается в том, что система должна иметь возможность идентифицировать ваш .png как тип, отличный от обычного .png (что, вероятно, не будет).Поэтому лучший способ сделать то, что вы хотите, - это создать IntentFilter, который может обрабатывать все файлы .png.

Вы можете прочитать об этом здесь и здесь .

0 голосов
/ 15 декабря 2011

Вам необходимо добавить свой mimetype и расширение файла в android / frameworks / base / media / java / android / media / MediaFile.java.

Когда mediascanner не может найти ваш mimetype в MediaFile.java, он получит для него новый mimetype, основываясь на расширении файла.

0 голосов
/ 15 августа 2011

Сканирование, кажется, основано на расширении файла, я читал об этом только сегодня, я пытаюсь вспомнить, где ..

...