Как узнать причину запуска приложения?
У меня в AndroidManifest у одного Activity стоит:
<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="myapp" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:host="*" android:mimeType="*/*" />
<data android:pathPattern=".*\\.ext1" />
<data android:pathPattern=".*\\.ext2" />
<data android:pathPattern=".*\\.ext3" />
<data android:scheme="content" />
<data android:scheme="file" />
</intent-filter>
И приложение работает без ошибок, но:
1.Я хочу узнать, как понять по какому фильтру произошёл запуск (просто пользователь нажал на иконку приложения или например выбрал моё приложение в "открыть файл с помощью")?
2.Как мне получить путь к файлу, который открывают с помощью моего приложения?
Ответы (1 шт):
Автор решения: Tiarait
→ Ссылка
Для определения intent-filter (kotlin):
if (intent?.action == "android.intent.action.MAIN") {
//from first intent-filter
} else if (intent?.data?.scheme == "myapp") {
//from second intent-filter
} else if (intent?.data?.scheme == "file" || intent?.data?.scheme == "content") {
//from third intent-filter
}
Для получения файла можно использовать File(intent?.data?.path!!) варианты получения полного пути так же оставляю