How to open my android app on tapping a file?

Discussão em 'Angular' iniciado por Enric Terradellas, Abril 8, 2025.

  1. I want to enable my ionic angular app to appear as an option when users tap on .gpx files on an android device.

    To do it, I edited my AndroidManifest.xml, but couldn't make it work. Now, my manifest is as follows:

    <?xml version='1.0' encoding='utf-8'?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <application
    android:allowBackup="false"
    android:fullBackupContent="false"
    android:largeHeap="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:usesCleartextTraffic="true"
    android:requestLegacyExternalStorage="true">
    <activity
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode|navigation"
    android:exported="true"
    android:label="@string/title_activity_main"
    android:launchMode="singleInstance"
    android:name=".MainActivity"
    android:theme="@style/AppTheme.NoActionBarLaunch">
    <!-- Primary filter for GPX with correct MIME type -->
    <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:mimeType="application/gpx+xml" />
    </intent-filter>

    <!-- Fallback filter for content URI with any MIME type but .gpx extension -->
    <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:mimeType="*/*" />
    <data android:host="*" />
    <data android:pathPattern=".*\\.gpx" />
    </intent-filter>

    <!-- Filter for file:// URIs with .gpx extension -->
    <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:mimeType="*/*" />
    <data android:pathPattern=".*\\.gpx" />
    </intent-filter>

    <!-- Additional filters for common MIME types used for GPX files -->
    <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:mimeType="application/xml" />
    </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="content" />
    <data android:mimeType="text/xml" />
    </intent-filter>
    </activity>
    <provider
    android:authorities="${applicationId}.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true"
    android:name="androidx.core.content.FileProvider">
    <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" />
    </provider>
    <receiver android:name="io.capawesome.capacitorjs.plugins.foregroundservice.NotificationActionBroadcastReceiver" />
    <service
    android:name="io.capawesome.capacitorjs.plugins.foregroundservice.AndroidForegroundService"
    android:foregroundServiceType="location"
    android:stopWithTask="true" />
    </application>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
    <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    <uses-feature android:name="android.hardware.location.gps" />
    </manifest>


    I checked it on my android 15 device. I tapped on a .gpx file on two different file managers as well as on a file shared via whatsapp, but my app never shows up

    Continue reading...

Compartilhe esta Página