मेरा दोस्त और मैं एक ऐप विकसित कर रहा हूं जो वाईफाई-डायरेक्ट का उपयोग करके एंड्रॉइड उपकरणों के बीच सिंक्रनाइज़ संगीत स्ट्रीम करता है। हमारा मुद्दा यह है कि जब फोन कनेक्ट होने के बाद ऐप काफी अच्छी तरह से काम करता है, तो फोन को कनेक्ट करने के लिए कुछ ऐसा लगता है क्योंकि सभी एओएसपी उपकरणों पर ऐसा लगता है कि वाईफ़ाई सीधा केवल वाईफ़ाई सीधी मेनू में प्रवेश करने पर चालू होता है (और बाहर निकलने पर तुरंत बंद हो जाता है)। यह अनुप्रयोग में कनेक्शन को मुश्किल बनाता है। हम सोच रहे थे कि क्या कोड से सीधे वाईफाई चालू करने का कोई तरीका है और इसे चालू रखें (अगर कोई हमें प्रतिबिंब का उपयोग करके ऐसा करने के विस्तृत विवरण के बारे में बता सकता है जो शानदार होगा)।वाईफाई-डायरेक्ट को एओएसपी डिवाइसों पर चालू करना
धन्यवाद!
public class Reflector {
static Method turnOnICS;
static Method turnOnJB;
static Method turnOffICS;
public static void turnOnP2P(WifiP2pManager m, Channel c) {
//Log.v("button", "turnOnP2P");
if (android.os.Build.VERSION.SDK_INT == 14 || android.os.Build.VERSION.SDK_INT == 15) {
//Log.v("version", "Version is ICS");
try {
turnOnICS = WifiP2pManager.class.getDeclaredMethod("enableP2p",WifiP2pManager.Channel.class);
turnOnICS.setAccessible(true);
turnOnICS.invoke(m, c);
} catch (NoSuchMethodException e) {
Log.v("ics_error", "ICS enableP2p() not found");
} catch (Exception e) {
Log.v("ics_error", "turnOnICS invocation failure");
}
} else if (android.os.Build.VERSION.SDK_INT == 16 || android.os.Build.VERSION.SDK_INT == 17) {
//Log.v("version", "Version is JB");
try {
turnOnJB = NsdManager.class.getDeclaredMethod("setEnabled", boolean.class);
turnOnJB.setAccessible(true);
turnOnJB.invoke(NsdManager.class, true);
//must feed it an nsdmanager, but none exists in wifidirectactivity
Log.v("nsd", "problem");
} catch (NoSuchMethodException e) {
Log.v("jb_error", "JB setEnabled() not found");
} catch (Exception e) {
Log.v("jb_error", "turnOnJB invocation failure");
e.printStackTrace();
}
}
}
public static void turnOffP2P(WifiP2pManager m, Channel c) {
//Log.v("button", "turnOffP2P");
if (android.os.Build.VERSION.SDK_INT == 14 || android.os.Build.VERSION.SDK_INT == 15) {
//Log.v("version", "Version is ICS");
try {
turnOffICS = WifiP2pManager.class.getDeclaredMethod("disableP2p", WifiP2pManager.Channel.class);
turnOffICS.setAccessible(true);
turnOffICS.invoke(m, c);
} catch (NoSuchMethodException e) {
Log.v("ics_error", "ICS disableP2P() not found");
} catch (Exception e) {
Log.v("ics_error", "turnOffICS invocation failure");
}
}
}
public static void printAll(){
Method[] list = WifiP2pManager.class.getDeclaredMethods();
for(Method m : list){
Log.v("tag",m.getName());
}
}
}
क्या आपको वाईफ़ाई डायरेक्ट को रखने का कोई तरीका मिला है? मुझे एक ही समस्या का सामना करना पड़ता है कि एक बार वाईफाई सीधे निकलता है, मुझे इसे चालू करने के लिए मैन्युअल रूप से सेटिंग्स पर जाना होगा। – windchime
नहीं, हमने इसे कभी नहीं समझा। उम्मीद है कि एंड्रॉइड देवताओं ने अब तक इस कार्यक्षमता को और अधिक सुलभ बना दिया है। – cbartondock