Search code examples
androidandroid-intentaudio-recording

Android check if using intent RECORD_SOUND_ACTION is available on device


I use sound recording using Intents. On one my device RECORD_SOUND_ACTION is not accessible. How can I check if RECORD_SOUND_ACTION is available on device ?

I use this part of code

Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
startActivityForResult(intent, RQS_RECORDING);

Solution

  • Please try this:

    Intent intent =
    new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);  
    if (isAvailable(getApplicationContext(), intent)) {  
    startActivityForResult(intent, RQS_RECORDING);
    } 
    
    public static boolean isAvailable(Context ctx, Intent intent) {  
    
       final PackageManager mgr = ctx.getPackageManager();  
    
       List<ResolveInfo> list =  
          mgr.queryIntentActivities(intent,   
          PackageManager.MATCH_DEFAULT_ONLY);  
    
          return list.size() > 0;  
    
      } 
    

    It works fine for me.