Androidはアプリにネットワークがあるかどうかを判断することについて

1993 ワード

 Android                      ,               ,    :
.java
 /**
     *           
     * 
     * @param context
     * @return
     */
    
    public boolean isNetworkAvailable(Activity activity)
    {
        Context context = activity.getApplicationContext();
        //             (   wi-fi,net      )
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        
        if (connectivityManager == null)
        {
            return false;
        }
        else
        {
            //   NetworkInfo  
            NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();
            
            if (networkInfo != null && networkInfo.length > 0)
            {
                for (int i = 0; i < networkInfo.length; i++)
                {
                    System.out.println(i + "===  ===" + networkInfo[i].getState());
                    System.out.println(i + "===  ===" + networkInfo[i].getTypeName());
                    //                
                    if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
                    {
                        return true;
                    }
                }
            }
        }
        return false;
    }
 oncreate()         ,      :
.java
@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);		
		setContentView(R.layout.activity_main);
		if(isNetworkAvailable(Maintivity.this){
 Toast.makeText(this, "       !", Toast.LENGTH_LONG).show();
 }else{
 Toast.makeText(this,"      !",Toast.LENGTH_LONG).show();}
 }
 
   ,       
  <!--          -->
    <uses-permission android:name="android.permission.INTERNET" />
 
     <!--            -->
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>