27

When installing the app I programmed, it requires the permission "to use the microphone". I don't however specifically ask for it in the manifest, what I have is the camera permission.

Is that where the microphone-permission is coming from?

deimos1988
  • 5,896
  • 7
  • 41
  • 57

5 Answers5

46
<uses-permission android:name="android.permission.RECORD_AUDIO" />

outside the application block actually solved it!

...
    </application>


    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
</manifest>
Nithinlal
  • 4,845
  • 1
  • 29
  • 40
  • 1
    The question is why the permission shows up in the App Permissions if not explicitly requested (and required). I have the same issue, not need or ever set the Microphone permission in manifest, but my app settings shows as my app needs the Microphone permission. – Sara Dec 10 '18 at 23:50
11

If you are using any kind of audio recording functionality in your application then you are supposed to provide RECORD_AUDIO permission in your manifest file as below:

 <uses-permission android:name="android.permission.RECORD_AUDIO" />
GrIsHu
  • 29,068
  • 10
  • 64
  • 102
11

in your manifest use this

 <uses-permission android:name="android.permission.RECORD_AUDIO" />

Then to request the permission do this:

if (ContextCompat.checkSelfPermission(getActivity(),
    Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {

ActivityCompat.requestPermissions(getActivity(),
        new String[]{Manifest.permission.RECORD_AUDIO},
        REQUEST_MICROPHONE);

}
Sayed Abolfazl Fatemi
  • 3,678
  • 3
  • 36
  • 48
Hansel
  • 139
  • 1
  • 6
7

Since Android 6.0 Marshmallow, application will not be granted any permission at installation time. Instead, application has to ask user for a permission one-by-one at runtime. Please note that permission request dialog shown above will not launch automatically. Developer has to call for it manually. In the case that developer try to call some function that requires a permission which user has not granted yet, the function will suddenly throw an Exception which will lead to the application crashing.

also add this to manifest:

<uses-permission android:name="android.permission.RECORD_AUDIO" />
Rez
  • 470
  • 2
  • 8
  • 14
0

I can't believe how wrong everyone got your question. They all just mindlessly jumped on the runtime permissions train hoping to provide any answer.

The Microphone permission can be coming from a third party library. Doesn't have to be defined in your Manifest.

Here is what you do:

Option 1: Check the "Merged Manifest" in all your modules. This will aggregate all manifests and permissions in all libraries used in your app.

Option 2: The above is not searchable. Do this to quickly search for the troublesome permission among merged manifests:

  1. Change to "Project Files" view in Android studio
  2. Go to "build -> "outputs" -> "logs"
  3. Open "manifest-merger-report" file and you'll be able to quickly search for the troublesome permission. You will see which library uses it.

for more info:

https://stackoverflow.com/questions/35627210...

https://stackoverflow.com/questions/30546197...

It is an old question but I struggled with it at the end of 2021 and only found three stack overflow questions.

psydj1
  • 181
  • 10
  • It's not really that. It's that permissions for android changed wildly over the last few years. It used to be a lot more simple than it is now, that's why the old answers look dumb now. – Adam R. Turner Jan 18 '22 at 00:23