Come verificare se il microfono viene utilizzato da qualsiasi applicazione di background

Ho cercato per due giorni e non sono riuscito a trovare una soluzione adeguata.

Sto cercando di verificare se alcuna applicazione in background utilizza il microfono, quindi la mia applicazione può utilizzarlo, altrimenti voglio solo visualizzare il messaggio "Microfono in uso da un'altra applicazione".

  • Disegnabile vs singolo bitmap riutilizzabile meglio con la memory?
  • Aggiorna la luminosità del display su Android dopo aver modificato in modo programmato
  • Android ottiene il text di tutte le caselle di controllo selezionate in listView
  • Come aggiungere un frammento all'interno di un ViewPager che utilizza frammento nidificato (Android 4.2)
  • Android doppio post di Volley quando hanno richiesta lenta
  • Come rilevare l'orientamento dello schermo in schermo ritratto ritratto in android?
  • Ho provato a controllare tutte le applicazioni in background e le loro autorizzazioni, ma che non risolve il mio problema, in quanto c'è il pacchetto wearable.app che richiede le autorizzazioni ma non influenza l'audio o non lo usa.

    Ho provato le altre soluzioni che ho potuto trovare qui o su google, ma nessuno di questi sembra essere il modo giusto.

    Voglio solo verificare se il microfono non viene utilizzato, quindi la mia applicazione può utilizzarlo.

    Qualsiasi suggerimento che apprezzerò.

    2 Solutions collect form web for “Come verificare se il microfono viene utilizzato da qualsiasi applicazione di background”

    Dopo aver cercato di più ho trovato la soluzione e lo sto aggiungendo qui per chiunque abbia bisogno di trovarlo più facile.

    private boolean validateMicAvailability(){ Boolean available = true; AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, 44100, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_DEFAULT, 44100); try{ if(recorder.getRecordingState() != AudioRecord.RECORDSTATE_STOPPED ){ available = false; } recorder.startRecording(); if(recorder.getRecordingState() != AudioRecord.RECORDSTATE_RECORDING){ recorder.stop(); available = false; } recorder.stop(); } finally{ recorder.release(); recorder = null; } return available; } 

    Puoi farlo l'altro.

    Prendi il microfono nella tua app.

    Ottieni un elenco delle applicazioni installate, che dispongono di un permesso di logging.

    Quindi controllare se una di queste applicazioni è in primo piano e se c'è una release del microfono in modo che l'altra applicazione possa utilizzarlo (ad esempio quando si verifica una chiamata).

    Un po 'pratica sporca ma penso che sia quello che stai cercando.

    Saluti!

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.