我希望用户能够在我的应用程序中快速打开默认相机应用程序(或其默认设置)。但是,我不想使用android.media.action.IMAGE_CAPTURE,因为这只会显示应用程序的照片拍摄部分。我只想简单地打开相机应用程序,而不使用它。我知道这是可能的,因为我已经使用过的几个图库应用程序(Most notibale:Focus)只能简单地打开相机应用程序,而没有使用IMAGE_CAPTURE。打开默认相机应用程序而不使用action.Image_Capture
2
A
回答
3
这可以通过使用PackageManager#resolveActivity(Intent)
在科特林来实现:
val info: ResolveInfo? = packageManager
.resolveActivity(cameraIntent);
if (info == null) {
// No camera app installed.
return
}
// Documentation says at least one of the three infos is not-null:
val app: ApplicationInfo = info.activityInfo?.applicationInfo
?: info.serviceInfo?.applicationInfo
?: info.providerInfo!!.applicationInfo
val launch: Intent? = packageManager
.getLaunchIntentForPackage(app.packageName)
if (launch == null) {
// Camera app has no default intent.
return
}
// Launch the camera intent's
// resolved app's default activity.
context.startActivity(launch)
(其中cameraIntent
是使用android.media.action.IMAGE_CAPTURE
过滤器创建的意图,context
是当前应用程序上下文和packageManager
是上下文的PackageManager
实例)
1
如果你想要打开默认的相机应用程序,使用下面的代码
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivity(
getPackageManager().getLaunchIntentForPackage(
intent.resolveActivity(getPackageManager()).getPackageName()));
相关问题
- 1. navigator.camera.getPicture不打开设备的默认相机应用程序
- 2. 如何在Android应用程序中使用默认相机功能打开相机?
- 3. CreateProcessAsUser:如何使用默认应用程序打开文件?
- 4. 使用iOs上的默认应用程序打开文件
- 5. 在默认应用程序中使用pdf打开pdfmake
- 6. 如何使用kivy打开默认的Android应用程序?
- 7. 在android中打开默认相机?
- 8. 在应用程序中打开文件而不是默认文件查看器
- 9. 在Android中使用相机应用程序后打开DialogFragment
- 10. Sharepoint 365应用程序使用默认主题而不是主机主题
- 11. 打开一个文件,不使用默认的程序
- 12. 如何将我的应用程序更改为默认相机应用程序?
- 13. 如何用ruby打开默认应用程序文件?
- 14. 如何用cmd中的默认应用程序打开文件?
- 15. 如何从React Native应用程序打开默认iOS应用程序?
- 16. 自定义默认相机应用程序
- 17. 在UWP应用程序中设置默认打印机
- 18. 如何将我的自定义相机应用程序设为默认相机应用程序?
- 19. 如何从iPhone中的本机应用程序打开相机?
- 20. Sidenav默认打开而不是OnClick
- 21. 阵营机iOS打开的邮件应用程序的默认文字
- 22. C#与默认应用程序打开的文件和参数
- 23. 如何更改打开应用程序的默认方式
- 24. 从通知打开默认地图应用程序
- 25. Android默认应用程序打开和关闭事件
- 26. Cocoa API设置文件的默认应用程序以打开
- 27. 默认情况下打开应用程序
- 28. 如何在默认应用程序中打开文件。 Ruby
- 29. Mac:默认应用程序打开电影文件
- 30. 获取打开文件的默认应用程序的图标
不确定,但您可能只是使用'android.media.action.IMAGE_CAPTURE'意图获取支持该意图的所有应用程序的列表,然后仅使用其包的默认意图过滤列表并启动其中一个应用程序。 – Heinrich
我尝试过,但它只显示实际的图像捕捉意图,而不是整个打开应用程序。无论打开什么相机应用程序,它只会打开图像捕捉部分。 – MJonesDev
添加了更详细的解释作为答案。 – Heinrich