2014-06-23 21 views
5

Attualmente sto utilizzando l'autorizzazione READ_PHONE_STATE in Android per mettere in pausa il mio lettore multimediale quando c'è una chiamata e per riprendere la riproduzione quando la chiamata è finita. Il permesso sembra spaventare un sacco di persone, quindi mi chiedevo se ci fosse un'alternativa a prendere l'avvio e l'arresto di una telefonata senza di essa. Qualsiasi aiuto è apprezzato. Grazie!Alternativa all'autorizzazione READ_PHONE_STATE per ricevere notifica della chiamata

+0

Penso che il [supporto dell'audio focus] (http://developer.android.com/training/managing-audio/audio-focus.html) dovrebbe gestirlo, sebbene non abbia mai sperimentato quella parte del SDK. – CommonsWare

+0

Grazie. Vedrò questo. – codeman

+0

Questo ha funzionato! Se lo aggiungi come risposta, lo accetto. Grazie! – codeman

risposta

4

Se si desidera regolare l'uscita audio in risposta a qualcos'altro che desidera eseguire l'uscita audio (ad es., Una chiamata in arrivo), esaminare Android audio focus support. READ_PHONE_STATE, come notato, è un po 'un permesso spaventoso. Inoltre, si occupa solo di telefonate e non di altre cose che potrebbero richiedere la stessa capacità (ad es. Chiamate VOIP, come AFAIK che non si collegano alle cose abilitate a READ_PHONE_STATE).

-1

Sfortunatamente, l'audio focus non è un sostituto di READ_PHONE_STATE. La mia app deve usare entrambi. L'app per telefono standard sul mio Galaxy S3 I9300/Android 4.3 non sembra richiedere l'audio focus. La classe TelephonyManager ti consente di rilevare la fine della telefonata (inviando l'aggiornamento di stato CALL_STATE_IDLE). AudioManager non sembra fare nulla di simile, quindi, anche se fosse possibile utilizzare l'audio focus, non sarebbe altrettanto utile. E, da quello che vedo nella documentazione, non sembra esserci un'autorizzazione più stretta di READ_PHONE_STATE che consentirebbe all'app di leggere lo stato del telefono ma non le informazioni sulla chiamata. Se mi sbaglio su questo, per favore correggimi.

-1

Sfortunatamente, l'audio focus non è un sostituto di READ_PHONE_STATE. La mia app deve usare entrambi. L'app per telefono standard sul mio Galaxy S3 I9300/Android 4.3 non sembra richiedere l'audio focus. La classe TelephonyManager ti consente di rilevare la fine della telefonata (inviando l'aggiornamento di stato CALL_STATE_IDLE). AudioManager non sembra fare nulla di simile, quindi, anche se fosse possibile utilizzare l'audio focus, non sarebbe altrettanto utile. E, da quello che vedo nella documentazione, non sembra esserci un'autorizzazione più stretta di READ_PHONE_STATE che consentirebbe all'app di leggere lo stato del telefono ma non le informazioni sulla chiamata. Se mi sbaglio su questo, per favore correggimi.

Problemi correlati