每次onRestart都要检查Wifi状态的Android应用问题

4

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

我的问题是是否有方法可以处理应用程序的状态,而不是在每个活动中添加onRestart()来实现我想要的功能?

1个回答

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()方法,但适用于每个活动)。 - Keith
是的,你说得对...每次启动应用程序时都要这样做。 - G M Ramesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接