deimos1988
deimos1988

Reputation: 6086

Microphone permission

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?

Upvotes: 31

Views: 83227

Answers (6)

Arya Bagaskara P
Arya Bagaskara P

Reputation: 76

you need to use 2 permission for audio manipulation, put this in AndroidManifest.xml outside application tag.

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

Upvotes: 1

psydj1
psydj1

Reputation: 260

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.

Upvotes: 1

Hansel
Hansel

Reputation: 149

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);

}

Upvotes: 12

Rez
Rez

Reputation: 500

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" />

Upvotes: 10

GrIsHu
GrIsHu

Reputation: 23638

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" />

Upvotes: 12

Nithinlal
Nithinlal

Reputation: 5061

<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>

Upvotes: 50

Related Questions