2013-02-26 47 views
5

से कनेक्ट होने पर ओपन ऐप जब कोई उपयोगकर्ता वाई-फाई वाले क्षेत्र में प्रवेश करता है तो मैं अपना एप्लिकेशन कैसे खोल सकता हूं? क्या यह संभव है? मान लीजिए मेरा आवेदन चालू है() राज्य (मेरा डिवाइस की होमस्क्रीन का मतलब है)। अब डिवाइस वाईफ़ाई से कनेक्ट होने पर। यह स्वचालित रूप से मेरा आवेदन खोल देगा।वाईफाई

उत्तर

5

वाई-फाई कनेक्ट अपनी गतिविधि शुरू करते समय प्रसारण रिसीवर जोड़ने और नेटवर्क परिवर्तनों को सुनने का प्रयास करें। इस समाधान

public class ConnectivityReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

       ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
       NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
       NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
       if (((null != wifi)&&(wifi.isAvailable())) || ((null != mobile)&&(mobile.isAvailable()))){ 
        Intent uplIntent = new Intent(context, YourActivity.class); 
        uplIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        context.startActivity(uplIntent); 
       } 

    } 
} 

और जोड़ने की तरह कुछ प्रकट करने के लिए

<receiver android:name=".receiver.ConnectivityReceiver"> 
     <intent-filter> 
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
     </intent-filter> 
    </receiver> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
+0

मुझे त्रुटि मिली जब मैं वाईफाई अक्षम कर रहा हूं। java.lang.RuntimeException: रिसीवर com.example.text को तुरंत चालू करने में असमर्थ। कनेक्टिविटी रिसीवर: java.lang.ClassNotFoundException: com.example.text.connectivityReceiver लोडर dalvik.system.PathClassLoader [/data/app/com.example। test-2.apk] –

+0

> जब मेरा आवेदन रोकें() स्थिति (डिवाइस का होमस्क्रीन)। जब डिवाइस वाईफाई से कनेक्ट होता है तो यह स्वचालित रूप से मेरा एप्लिकेशन खोल देगा। –

+0

@ prozhyga-> जब मेरा आवेदन रोकें() स्थिति (डिवाइस का होमस्क्रीन)। जब डिवाइस वाईफाई से कनेक्ट होता है तो यह स्वचालित रूप से मेरा एप्लिकेशन खोल देगा। –

0

क्या मैं कल्पना कर सकते हैं onPause() विधि इस तरह के एक ओवरराइटिंग है:

@Override 
public void onPause() { 
    String conn_context = Context.WIFI_SERVICE; 
    final WifiManager wifi = (WifiManager) getSystemService(conn_context); 
    if (wifi.isWifiEnabled()) 
    { 
     super.onResume(); 
    } 
    else 
    { 
     super.onPause(); 
    } 
} 

लेकिन क्या आप भी एक तरह से समझ चाहिए असली ऑन पॉज़ इवेंट को संभालने के लिए।

+0

@ goody-> जब मेरा एप्लिकेशन चालू हो() राज्य (डिवाइस का होमस्क्रीन मतलब है)। जब डिवाइस वाईफाई से कनेक्ट होता है तो यह स्वचालित रूप से मेरा एप्लिकेशन खोल देगा। –

0

शायद Play Store से टास्कर ऐप के साथ करने योग्य (हालांकि मुक्त नहीं)। या आप एक सेवा (http://developer.android.com/guide/components/services.html) बना सकते हैं जिसमें अन्य उत्तरों में उल्लिखित कोड होगा और फिर वाईफाई उपलब्ध होने पर अपना ऐप (गतिविधि) लॉन्च करेगा।