我希望我的应用程序是在列表中打开pdf从任何地方在android环境。我环顾四周,并根据我所读到的内容添加了这些意图。然而,当测试和打开一个pdf,它只是打开它使用默认的应用程序北极星?
我的理解是,在这个活动中,我使用下面的代码来获取传递进来的信息。
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
我尝试禁用北极星,然后打开它时显示无法找到执行此应用程序的应用程序。
<activity
android:name=".UserLogIn"
android:label="User Authentication" >
<intent-filter>
<action android:name="com.example.USERLOGIN" />
<category android:name="android.intent.category.DEFAULT" />
</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="http" />
<data android:host="*" />
<data android:pathPattern=".*\.pdf" />
</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="http" />
<data android:host="*" />
<data android:mimeType="application/pdf" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="file" />
<data android:host="*" />
<data android:pathPattern=".*\.pdf" />
</intent-filter>
</activity>
我的例子:
<activity
android:name=".ui.PdfViewerActivity" >
<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:mimeType="application/pdf" />
</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:host="*" />
<data android:scheme="file" />
<data android:scheme="smb" />
<data android:scheme="content" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\.pdf" />
</intent-filter>
</activity>