2012-08-13 3 views
1

У меня есть странная проблема, где вместо url следует запустить приложение, оно загружает приложение в браузер, в этом случае в mozella!Android 4.0 запускающее приложение с URL-адреса не работает

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

<uses-sdk android:minSdkVersion="15" /> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

<application 
    android:name=".Globals" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".RSS_ViewerActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

     <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <data android:scheme="itpc" /> 
       <data android:scheme="pcast" /> 
       <data android:scheme="feed" /> 
       <data android:scheme="feeds" /> 
       <data android:scheme="rss" /> 
     </intent-filter> 

     <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <data android:mimeType="text/xml" android:scheme="http" /> 
       <data android:mimeType="application/rss+xml" android:scheme="http" /> 
       <data android:mimeType="application/atom+xml" android:scheme="http" /> 
       <data android:mimeType="text/xml" android:scheme="https" /> 
       <data android:mimeType="application/rss+xml" android:scheme="https" /> 
       <data android:mimeType="application/atom+xml" android:scheme="https" /> 
     </intent-filter> 

    </activity> 
    <activity android:name="RSSFeedActivity"></activity> 
    <activity android:name="com.CertificateAuthentication.Authenticator"></activity> 
</application> 

спасибо.

UPDATE

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

UPDATE

Я Убраны 2-й и 3-й намерений фильтров, я попытался объединить 2 оставшихся намерений фильтров в 1, но не загружает приложения из браузера. приведенный выше код выглядит так, как сейчас, и дает мне те же результаты, что и раньше = (что раздражает, так как это означает, что у пользователей может быть 2 сеанса работы приложения: один из браузера и один из запуска.

ответ

0

Ваш второй и третий <intent-filter> элементы могут не работать, так как android:host не документировано для поддержки подстановочные.

+0

Приветствия, но, к сожалению, не получилось = ( Я пытался изменить действие на основной, но не работает в диалоге с просьбой выберите приложение, которое никогда не показывает мое приложение! –

0

Проблема здесь \. Это побег характер, так, чтобы это выражение работы вам нужно \\. Documentation clearly says, что вам нужно использовать \\. для точки (пример с \\*).

Я также согласен с CommonsWare ответа, я нашел в documentation такое заявление:

Каждый из этих атрибутов не является обязательным, но они не являются независимыми от друг друга: Для авторитетом, чтобы быть значимым, схема также должен быть указан . Чтобы путь имел смысл, необходимо указать как схему, так и орган .

И The host and port together constitute the URI authority так что на практике власть означает «хозяин», поэтому вы не можете опустить это, и, видимо, вы не можете поставить там звезду.

IMO вы сделали это сложным, вам не нужно определять путь здесь! Тип Mime должен выполнять эту работу. Попробуйте найти некоторые проекты с открытым исходным кодом, которые читают RSS и видят, как они определили манифест.

Я думаю, что вам нужно что-то вроде этого:

<activity 
    android:name=".RSS_ViewerActivity" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 

    <intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:scheme="itpc" /> 
     <data android:scheme="pcast" /> 
     <data android:scheme="feed" /> 
     <data android:scheme="feeds" /> 
     <data android:scheme="rss" /> 
     <data android:mimeType="text/xml" android:scheme="http" /> 
     <data android:mimeType="application/rss+xml" android:scheme="http" /> 
     <data android:mimeType="application/atom+xml" android:scheme="http" /> 
     <data android:mimeType="text/xml" android:scheme="https" /> 
     <data android:mimeType="application/rss+xml" android:scheme="https" /> 
     <data android:mimeType="application/atom+xml" android:scheme="https" /> 
    </intent-filter> 

</activity> 
+0

спасибо за помощь, я достал эти два фильтра намерений, как вы и здравый смысл, я обновил свой пост выше. Я все еще получаю одинаковые результаты, хотя = (я также пробовал из другого браузера, Android android, и я получаю одинаковые результаты приложения, просматривается из браузера, а затем запускается/возобновляется, если это Бег. –