Datafiletype (custom) не открывается в моем приложении - PullRequest
2 голосов
/ 21 ноября 2011

Я создал свой собственный тип файла (.mmd). Этот тип файла, в котором я сохранил некоторые данные, и хотел бы, чтобы файл этого типа был выбран, чтобы открыть его в моем приложении, в подактивности openMeasurement.

Мой манифест был изменен, поэтому у действия есть следующие свойства, которые я получил из другого потока. Но этого, кажется, недостаточно

<activity android:name="OpenMeasurement">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="http" android:host="*"
                android:pathPattern=".*\\.mmd" />
            <data android:scheme="https" android:host="*"
                android:pathPattern=".*\\.mmd" />
            <data android:scheme="content" android:host="*"
                android:pathPattern=".*\\.mmd" />
            <data android:scheme="file" android:host="*"
                android:pathPattern=".*\\.mmd" />
        </intent-filter>
    </activity>

Что я делаю не так \ Забывая кого-нибудь, кто может помочь? -Благодарю кучу заранее.

Редактировать 1:
Может быть, потому, что я только отлаживаю на своем реальном телефоне и, следовательно, не устанавливаю и не получаю все специфические требования, на самом деле не должно быть так, я хотел бы несколько комментариев, если вы так думаете. ------ Edit3 --- Похоже, он регистрирует «открытый тип файла» на телефоне, даже когда находится в «режиме отладки», так как я мог зарегистрировать его для файла .pdf

Редактировать 2: Хорошо, я попытался разделить его, удалил схемы HTTP, так как считаю их ненужными. Теперь код выглядит так:

    <activity android:name="OpenMeasurement">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="content" />
            <data android:host="*" />
            <data android:pathPattern=".*\\.mmd" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="file" />
            <data android:host="*" />
            <data android:pathPattern=".*\\.mmd" />
        </intent-filter>
    </activity>

И он все равно не открывается и не дает выбора, когда я выбираю свой файл (используя «Мои файлы»)

Также пытались использовать двойные escape-символы в pathpattern (". * \\. Mmd"), тоже не помогло.

Редактировать 4: Также попытался добавить:

<data android:mimetype="*/*"/>

Но все равно нет радости: '- (

Ответы [ 2 ]

1 голос
/ 06 декабря 2011

В общем случае это невозможно, поскольку механизм намерений работает с типами MIME, и вы можете использовать только предопределенные типы MIME.

См. http://code.google.com/p/android/issues/detail?id=11112

Итак: вы не можете заставить его работать в локальном файловом обозревателе, таком как ASTRO, поскольку он, вероятно, работает, как описано в ACTION_VIEW, намерение для файла с неизвестным MimeType - т.е. используя встроенную MimeTypeMap.

Однако, если файлы находятся в Интернете, механизм открытия URL-адреса веб-браузера может быть перехвачен, как описано в http://groups.google.com/group/android-developers/browse_thread/thread/d79bfa05528cbbee#

0 голосов
/ 09 января 2014

Это действительно возможно, если вы используете двойной обходной путь. Вы ТОЛЬКО удваиваете перекрестные линии перекрещивания, и это должно позволить вам использовать этот тип файла, но только если это тип 40 с символом angelo, и вы всегда можете обновить общую метку 35 с помощью простой загрузки.

...