#android
#Android
Вопрос:
- Я хочу добавить функциональность для пользователя, позволяющую выбирать PDF-файл из microsoft Office lens и отправлять его в мое приложение с помощью
startActivityForResult()
метода. Возможно ли это? -
Следующий код позволяет пользователю перейти из моего приложения в playstore, а затем в office lens. Как мне перенаправить пользователя непосредственно в office lens
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.microsoft.office.officelens")) intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK startActivityForResult(intent, IMAGE_PICK_CODE)
Комментарии:
1.
Intent.ACTION_VIEW
не позволяет выбирать содержимое из сторонних приложений. Вы можете попробовать использоватьIntent.ACTION_GET_CONTENT
с именем пакета этого приложения. Но сначала проверьте, установлено приложение или нет.
Ответ №1:
Ну, я нашел комментарий полезным и придумал это, чтобы решить свою вторую проблему
val isAppInstalled = appInstalledOrNot("com.microsoft.office.officelens")
if (isAppInstalled)
{
//This intent will help you to launch if the package is already installed
Toast.makeText(this@ScrollingActivity, "Its toast at if!", Toast.LENGTH_SHORT).show()
val LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.microsoft.office.officelens")
startActivityForResult(LaunchIntent, IMAGE_PICK_CODE)
}
else
{
Toast.makeText(this@ScrollingActivity, "else executed!", Toast.LENGTH_SHORT).show()
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.microsoft.office.officelens"))
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivityForResult(intent, IMAGE_PICK_CODE)
}
эта функция позволяет проверить, установлено приложение или нет
private fun appInstalledOrNot(uri:String):Boolean {
val pm = getPackageManager()
try
{
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES)
return true
}
catch (e:PackageManager.NameNotFoundException) {}
return false
}