1

私のアプリは、標準の .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 を認識させたりする方法についてのアイデアはありますか?

4

3 に答える 3

0

スキャンはファイル拡張子に基づいているようです。今日それについて読みました。場所を思い出そうとしています..

于 2011-08-15T01:05:13.023 に答える
0

MIME タイプとファイル拡張子をandroid/frameworks/base/media/java/android/media/MediaFile.javaに追加する必要があります 。

mediascanner が MediaFile.java で MIME タイプを見つけられない場合、ファイル拡張子に基づいて新しい MIME タイプを取得します。

于 2011-12-15T09:32:38.943 に答える
0

.png ファイル (または MIME タイプ) を処理できるものとして (マニフェストに) 登録するアクティビティが必要です。ファイルのカスタム MIME タイプの問題は、システムが .png を通常の .png とは異なるタイプとして識別できる必要があることです (これはおそらくできないでしょう)。したがって、すべての .png を処理できる IntentFilter を作成するのが最善の方法です。

あなたはそれについてここここで読むことができます.

于 2011-08-15T01:11:40.000 に答える