2012-12-09 23 views
6

मैं एंड्रॉयड AudioManager उपयोग कर रहा हूँ म्यूट करने के लिए और STREAM_SYSTEM और STREAM_NOTIFICATION तरह अनम्यूट धाराओं, म्यूट setStreamMute बुला सीधा है, लेकिन मैं एक isStreamMuted विधि को खोजने में असमर्थ हूँ।क्यों AudioManager.isStreamMuted उपलब्ध नहीं है?

स्रोत कोड के अंदर खोज रहे हैं मैं it exists देख सकते हैं तो सवाल 'कैसे जांच कर सकते हैं है, तो एक धारा म्यूट हो गया है?

मैं एंड्रॉयड 4.0.4

+0

अच्छा सवाल है। वही खोज रहे हैं। क्या आपको जवाब मिल गया? –

+1

अशुभ कोई समाधान – dafi

उत्तर

7

अप्रिय जवाब पर काम कर रहा हूँ कि धारा मूक एक प्रति प्रक्रिया आधार पर कार्य करता है। तो आप सुरक्षित रूप से एक स्थिर चर कहीं, उचित रूप से लिपटे में मूक राज्य की दुकान, और अपने आप को म्यूट स्थिति ट्रैक कर सकते हैं। कड़वी अनुभव से बोलते हुए। कभी-कभी आप ऐसा करते हैं जो आपको करना है। आपने ऐसा क्यों किया? यही कारण है कि एक और अधिक कठिन सवाल है ....

1

वे छिपाने का उपयोग करके android.jar से बाहर विधि छीन:

/** 
* get stream mute state. 
* 
* @hide 
*/ 
public boolean isStreamMute(int streamType) { 
8

कुछ विचार अपने दोस्त हैं। यह मेरे लिए काम किया।

try { 
    Method m = AudioManager.class.getMethod("isStreamMute", int.class); 
    isMuted = (Boolean) m.invoke(am, AudioManager.STREAM_MUSIC); 
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { 
    System.out.println(e); 
} 

अद्यतन: विधि public boolean isStreamMute (int streamType) अब प्रतिबिंब का उपयोग किए बिना एपीआई 23 में पहुंच योग्य है।

+1

धन्यवाद बहुत गूदा और बहुत बहुत बहुत छोटे सुधार isMuted = (बूलियन) m.invoke (बजे AudioManager.STREAM_MUSIC); –

+1

उत्तर में फिक्स्ड। धन्यवाद! –

संबंधित मुद्दे