簡體   English   中英

如何讓我的應用程序出現在app chooser中?

[英]How do I make my app appear in app chooser?

我想宣傳我的應用程序能夠查看pdf文件,以便在從文件管理器中選擇pdf文件時它將顯示在應用程序選擇器中。

這是我的意圖過濾器的樣子

<activity
    android:name=".MainActivity"
    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" />
        <data android:mimeType="application/pdf" />
    </intent-filter>
</activity>

每當我從文件管理器打開pdf時,它會自動選擇另一個名為Polaris Viewer的pdf應用程序。

我在應用程序設置下檢查以確保Polaris不是默認應用程序。 它說沒有設置默認值。

此外,我下載了一個名為Intent Intercept的第三方應用程序。 如果我從文件管理器中選擇一個pdf文件,則會出現一個應用程序選擇器,顯示Polaris和Intent Intercept。 如果我選擇Intent Intercept,它會告訴我Polaris和我的app(Rollout PdfEditor)都符合意圖。 這是Intent Interceptor的輸出:

動作:android.intent.action.VIEW

DATA:file:///storage/sdcard0/Download/download.pdf TYPE:application / pdf

標志:FLAG_ACTIVITY_FORWARD_RESULT FLAG_ACTIVITY_PREVIOUS_IS_TOP

EXTRAS:EXTRA 1:Class:java.lang.Boolean Key:preview Value:false EXTRA 2:Class:java.lang.String Key:key_filename Value:/storage/sdcard0/Download/download.pdf EXTRA 3:Class:android。 net.Uri $ HierarchicalUri Key:android.intent.extra.STREAM EXTRA 4:Class:java.lang.Integer Key:sort_order Value:0

2活動與此目標相匹配:Polaris Viewer 4.1(com.infraware.polarisviewer4 - com.infraware.polarisoffice4.OfficeLauncherActivity)Rollout PdfEditor(com.example.rolloutpdfeditor - com.example.rolloutpdfeditor.MainActivity)>

您缺少IntentFilter必需的<category />標簽! 如果你看一下<category />的文檔,它會說:

注意:要接收隱式意圖,必須在intent過濾器中包含CATEGORY_DEFAULT類別。 方法startActivity()和startActivityForResult()將所有意圖視為已聲明CATEGORY_DEFAULT類別。 如果您未在意圖過濾器中聲明它,則不會將隱式意圖解析為您的活動。

所以你總是必須包含android.intent.category.DEFAULT作為IntentFilter類別才能工作。 如果您希望應用程序能夠處理來自瀏覽器或其他應用程序的pdf鏈接,您還需要包含android.intent.category.BROWSABLE 您可以在此處找到有關BROWSABLE文檔。 它寫道:

CATEGORY_BROWSABLE
目標活動允許自己由Web瀏覽器啟動,以顯示鏈接引用的數據 - 例如圖像或電子郵件。

試試這個IntentFilter

<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:mimeType="application/pdf" />
</intent-filter>

我想你錯過了這兩個類別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM