2
public class Information extends BroadcastReceiver{
   public static String ChangeDate;

   @Override
   public void onReceive(Context context, Intent intent) {  
      ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

      android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

      android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

      if (wifi.isAvailable() || mobile.isAvailable()) {
         Toast.makeText(context, "Internet Available", Toast.LENGTH_SHORT).show();
      } else {
         Toast.makeText(context, "Internet not Available", Toast.LENGTH_SHORT).show();
                         RahuActivity.nextAlaram(); 
      }

   }

}

マニフェスト.xml

   <receiver android:name="com.astrobix.service.Information" >
    <intent-filter>

            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />


        </intent-filter>
</receiver>

モバイルでこのコードを実行すると、両方のトーストメソッドが表示されます。最初に Wi-Fi をオフにすると、インターネットが利用可能というメッセージが表示され、インターネットが利用できないというメッセージが再び表示されます。RahuActivity.nextAlaram()1 つのメッセージのみを表示する必要があります。そのため、例外が表示されると思います。

Logcat here :-
08-02 16:25:54.309: E/AndroidRuntime(21170): java.lang.RuntimeException: Unable to start receiver com.astrobix.service.Information: java.lang.NullPointerException
4

4 に答える 4

1

この機能を試す

//Function For Check WIFI Connection
    public boolean fun_CheckWIFIConnection(String WIFIName) {

        ConnectivityManager connManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

            if (networkInfo.isConnected()) {

                final WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
                final WifiInfo connectionInfo = wifiManager.getConnectionInfo();

                if (connectionInfo != null && !(connectionInfo.getSSID().equals(""))) {

                    String SSID = connectionInfo.getSSID();

                    if (SSID.startsWith("\""))
                    {
                        SSID = SSID.substring(1, SSID.length());
                    }
                    if (SSID.endsWith("\""))
                    {
                        SSID = SSID.substring(0, (SSID.length() -1));
                    }
                    if (SSID.equals(WIFIName))
                    {
                        return true;
                    }

                }
                else{
                    Log.e("Request Alert", "connectionInfo Is null OR SSID Is Blanck");
                    return false;
                }
            }
            else{
                    Log.e("Request Alert", "WIFI Is Not Connected");
                    return false;

            }

        return false;
    }
于 2013-08-02T11:09:41.337 に答える
0

これは役立つかもしれません.Androidの明らかなものです!!

public boolean isConnectingToInternet(){
    ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
      if (connectivity != null) 
      {
          NetworkInfo[] info = connectivity.getAllNetworkInfo();
          if (info != null) 
              for (int i = 0; i < info.length; i++) 
                  if (info[i].getState() == NetworkInfo.State.CONNECTED)
                  {
                      return true;
                  }

      }
      return false;
}
于 2013-08-02T12:06:29.497 に答える
0

役立つことを願っているmobile.isConnected() ||wifi.isConnected()よりも試してみてくださいisAvailable()

于 2013-08-02T11:08:19.370 に答える