Comment créer une activité prenant en charge certains types de fichiers cliqués dans le navigateur Web?Comment lire les fichiers cliqués dans le navigateur Web Android?
Voici ce que j'ai essayé:
AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.sf.asap" android:versionCode="212" android:versionName="2.1.2">
<application android:label="@string/app_name" android:icon="@drawable/icon">
<activity android:name=".FileSelector" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Player" android:label="@string/playing">
<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" android:host="*" />
<data android:scheme="http" android:host="*" />
<data android:scheme="https" android:host="*" />
<data android:pathPattern=".*\\.sap" />
<data android:pathPattern=".*\\.cmc" />
<data android:pathPattern=".*\\.cm3" />
<data android:pathPattern=".*\\.cmr" />
<data android:pathPattern=".*\\.cms" />
<data android:pathPattern=".*\\.dmc" />
<data android:pathPattern=".*\\.dlt" />
<data android:pathPattern=".*\\.mpt" />
<data android:pathPattern=".*\\.mpd" />
<data android:pathPattern=".*\\.rmt" />
<data android:pathPattern=".*\\.tmc" />
<data android:pathPattern=".*\\.tm8" />
<data android:pathPattern=".*\\.tm2" />
</intent-filter>
</activity>
</application>
</manifest>
Fragment de Player.java:
Uri uri = getIntent().getData();
InputStream is = getContentResolver().openInputStream(uri);
Quand j'entrer une URL dans le navigateur (Android 1.6) Je reçois:
E/AndroidRuntime(12026): Caused by: java.lang.RuntimeException: java.io.FileNotFoundException: No content provider: http://asap.sourceforge.net/X_Ray_2.sap
E/AndroidRuntime(12026): at net.sf.asap.Player.onCreate(Player.java:109)
E/AndroidRuntime(12026): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
E/AndroidRuntime(12026): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
Non, je filtre par pathPattern et scheme/host sont nécessaires juste pour que pathPattern fonctionne (apparemment scheme = "*" ne fonctionne pas). Mon application est présentée à l'utilisateur uniquement pour les extensions que j'ai listées (vérifié le navigateur web et le gestionnaire de fichiers OI). – user475838
getContentResolver(). OpenInputStream() fonctionne pour les URL "file:" et je m'attendais à ce qu'il fonctionne également avec "http:". Je vous remercie! – user475838