首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:我的应用程序被禁止使用照相机

Android:我的应用程序被禁止使用照相机
EN

Stack Overflow用户
提问于 2014-06-09 02:39:51
回答 2查看 659关注 0票数 0

安卓有一个问题:我的安卓应用程序需要使用系统摄像头,function.it可以很好地工作,但是当它在lenovo k900上运行时,这款手机有一个功能是禁止某些应用程序使用摄像头或其他permission.so,我需要知道如何判断应用程序是否可以使用摄像头。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-11 02:58:17

我很高兴终于解决了这个问题。

首先,我判断是否可以使用系统摄像机,如果不给用户一个提示,使用此方法。

代码语言:javascript
复制
 private Camera getCameraInstance() {
        try {
            camera = Camera.open(); // attempt to get a Camera instance
        } catch (Exception e) {
            LogUtil.log(LogUtil.TAG_ERROR, e.toString());
            DialogUtil.showToast(getString(R.string.camera_can_not_use));
            finish();
        }
        return camera; // returns null if camera is unavailable
    }

然后,在调用系统摄像机之前,调用此方法进行检查。如果此方法返回的不是null.remind,则释放摄像机。

代码语言:javascript
复制
private void doTakePhoto() {
        if (getCameraInstance() != null) {
            camera.release();
            Intent intent = new Intent();
            intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
            intent.addCategory(Intent.CATEGORY_DEFAULT);
            startActivityForResult(intent, CAMERA_REQUEST_CODE);
        }
    }

现在,当系统禁止应用程序使用相机时,您可以给用户一个友好的提示。

票数 2
EN

Stack Overflow用户

发布于 2014-06-09 02:43:41

代码语言:javascript
复制
try {
    // Your camera code
} catch (Exception e) {
    // Tell the user nicely
}

最新答复:

代码语言:javascript
复制
public boolean isIntentAvailable(Context context, String action) {
    final PackageManager packageManager = context.getPackageManager();
    final Intent intent = new Intent(action);
    List resolveInfo =
            packageManager.queryIntentActivities(intent,
                    PackageManager.MATCH_DEFAULT_ONLY);
   if (resolveInfo.size() > 0) {
     return true;
    }
   return false;
}

if (isIntentAvailable(this, MediaStore.ACTION_IMAGE_CAPTURE)){  
    Intent i = new Intent();
    i.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
    intent.addCategory(Intent.CATEGORY_DEFAULT);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile));    
    startActivityForResult(intent, CAMERA_REQUEST_CODE); 
} else {
// tell the user nicely or create a chooser intent.createChooser
}

试试这个,让我知道

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24112991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档