Search code examples
androidandroid-studiocameraandroid-manifestandroid-11

Camera intent not working in Android 11 API 30


This is my manifest file

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.simplyfi.myapplication">

    <uses-feature
        android:name="android.hardware.camera"
        android:required="true" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <queries>
        <intent>
            <action android:name="android.intent.action.TTS_SERVICE" />
        </intent>
        <intent>
            <action android:name="android.speech.RecognitionService" />
        </intent>
        <intent>
            <action android:name="android.media.action.IMAGE_CAPTURE" />
        </intent>
    </queries>

   <application
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:debuggable="true"
        android:testOnly="false"
        android:theme="@style/Theme.MyApplication"
        android:usesCleartextTraffic="true"
        tools:ignore="HardcodedDebugMode"
        android:requestLegacyExternalStorage="true"
        tools:replace="android:allowBackup">

I have added the IMAGE_CAPTURE recommended in the docs and previous stackoverflow answers but it is still not working. It is working fine in Anroid 10 but not in 11.

Thanks in advance.


Solution

  • I've faced the problem on my physical device where Google Camera is installed and the standard camera app is disabled.

    Looks like even if one has declared <action android:name="android.media.action.IMAGE_CAPTURE" /> in the AndroidManifest.xml, only standard pre-installed camera app can handle the intent.

    So the only solution to me was enabling the standard camera app again.