我正在使用Android 6.0并通过
打开相机意图Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
try {
getApplication().startActivity(intent);
} catch (final ActivityNotFoundException e) {
e.printStackTrace();
}
它将打开我的相机意图。如果我按下电影按钮,将显示电影GUI。我想区分相机和电影的意图。如何通过编程来了解它,因为它们都有相机名称。这是我获取当前进程名称的代码
String foregroundProcess = null;
UsageStatsManager mUsageStatsManager = (UsageStatsManager) getApplicationContext().getSystemService(Service.USAGE_STATS_SERVICE);
long time = System.currentTimeMillis();
UsageEvents usageEvents = mUsageStatsManager.queryEvents(time - 1000 * 3600, time);
UsageEvents.Event event = new UsageEvents.Event();
while (usageEvents.hasNextEvent()) {
usageEvents.getNextEvent(event);
if(event.getEventType() == UsageEvents.Event.MOVE_TO_FOREGROUND) {
foregroundProcess = event.getPackageName();
}
}
//Convert package name to application name
final PackageManager pm = getApplicationContext().getPackageManager();
ApplicationInfo ai;
try {
ai = pm.getApplicationInfo(foregroundProcess, 0);
} catch (final PackageManager.NameNotFoundException e) {
ai = null;
}
String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)");
return applicationName;
答案 0 :(得分:2)
您可以要求相机通过ACTION_IMAGE_CAPTURE
拍摄照片,然后您可以请求相机录制视频via ACTION_VIDEO_CAPTURE
。
如果您正在测试的相机应用程序允许用户在这些模式之间切换,则从这些Intent
操作启动时,恕我直言,这是相机应用程序中的错误。
答案 1 :(得分:1)
处理MediaStore.ACTION_IMAGE_CAPTURE
的应用不应该允许您切换到视频模式,因为您明确调用它来捕获图像(ACTION_VIDEO_CAPTURE
操作相同,这应该只适用于视频模式)。我会将此问题报告给应用供应商,而不是浪费时间尝试解决其他问题。错误。