2013-02-26 16 views
5

Làm cách nào để mở ứng dụng của tôi khi người dùng vào vùng có wi-fi? Điều này có thể không? Giả sử ứng dụng của tôi là onPause() bang (có nghĩa là màn hình chính của Thiết bị của tôi). ngay bây giờ khi thiết bị được kết nối với wifi. nó sẽ tự động mở ứng dụng của tôi.mở ứng dụng khi kết nối với wifi

Trả lời

5

Thử thêm bộ thu phát sóng và nghe các thay đổi mạng, khi kết nối wi-fi bắt đầu hoạt động của bạn. Một cái gì đó giống như giải pháp này

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); 
       } 

    } 
} 

Và thêm vào biểu hiện

<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

tôi gặp lỗi khi tắt wifi . java.lang.RuntimeException: Không thể khởi tạo bộ thu com.example.text.ConnectivityReceiver: java.lang.ClassNotFoundException: com.example.text.ConnectivityReceiver trong bộ nạp dalvik.system.PathClassLoader [/data/app/com.example. test-2.apk] –

+0

> khi trạng thái onPause() của tôi (nghĩa là màn hình chính của thiết bị). khi thiết bị kết nối với wifi, nó sẽ tự động mở ứng dụng của tôi. –

+0

@ prozhyga-> khi trạng thái onPause() của tôi (nghĩa là màn hình chính của thiết bị). khi thiết bị kết nối với wifi, nó sẽ tự động mở ứng dụng của tôi. –

0

Những gì tôi có thể tưởng tượng là một ghi đè của phương pháp onPause() như thế này:

@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(); 
    } 
} 

Nhưng bạn cũng phải tìm một cách để xử lý sự kiện onPause thực sự.

+0

@ goody-> khi ứng dụng của tôi onPause() trạng thái (nghĩa là màn hình chính của thiết bị). khi thiết bị kết nối với wifi, nó sẽ tự động mở ứng dụng của tôi. –

0

Có thể thực hiện được với ứng dụng Tasker từ Cửa hàng Play (không miễn phí). Hoặc bạn có thể tạo một Dịch vụ (http://developer.android.com/guide/components/services.html) sẽ có mã được nêu trong các câu trả lời khác và sau đó khởi chạy ứng dụng (Hoạt động) của bạn khi có sẵn wifi.