【问题标题】:Android checking Wifi on every onRestartAndroid 在每次 onRestart 时检查 Wifi
【发布时间】:2012-09-18 19:27:05
【问题描述】:

我希望我的应用程序检查设备是否正在连接到特定的 Wifi,并在应用程序导航到时自动连接到 Wifi。我知道我可以在 onRestart() 中做到这一点。但它只处理一个活动的状态。

我的问题是是否有任何方法来处理应用程序的状态,而不是在每个活动上添加 onRestart() 来做我想做的事?

【问题讨论】:

    标签: android application-restart


    【解决方案1】:

    试试下面的代码:

       import android.app.PendingIntent;
        import android.content.BroadcastReceiver;
        import android.content.Context;
       import android.content.Intent;
        import android.net.ConnectivityManager;
    
    
         public class AutostartService extends BroadcastReceiver {  
    
         @Override  
         public void onReceive(Context context, Intent intent) {
     System.out.println("in broad....");
     ConnectivityManager manager = (ConnectivityManager)context.getSystemService(context.CONNECTIVITY_SERVICE);
       boolean is3g = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
       boolean isWifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
    
       if(!is3g && !isWifi){
    
       }else{
     if ((intent.getAction() != null) && (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")))
        {
            System.out.println("in broadcast receiver.....");
            Intent i = new Intent(context, Splash.class);  
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
            context.startActivity(i);  
        }
       }
            }
    
           }
    

    别忘了在清单文件中添加这个:

        <receiver android:name=".AutostartService" android:enabled="true" android:exported="true">
          - <intent-filter>
              <action android:name="android.intent.action.BOOT_COMPLETED" /> 
              <category android:name="android.intent.category.DEFAULT" /> 
                 </intent-filter>
                  </receiver>
    

    以及清单文件中的以下权限:

         <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
         <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
          <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
          <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
    

    【讨论】:

    • 谢谢。 RECEIVE_BOOT_COMPLETED 是开机后广播的吧?但我想对应用程序的每次启动进行检查(类似于 onRestart() 方法,但适用于每个活动)。
    • 是的,你是对的......每次启动应用程序时都这样做
    猜你喜欢
    • 2015-03-31
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-30
    相关资源
    最近更新 更多