2016-08-06 29 views
0

Der Broadcast-Empfänger funktioniert nicht, wenn meine Internetverbindung ausgeschaltet ist, aber es funktioniert gut, wenn mein Internet verbunden ist.Android BroadcastReceivers onReceive nicht aufgerufen, wenn das Internet ausgeschaltet ist in redmi 2

Ich habe den automatischen Start in den Sicherheitseinstellungen für meine App aktiviert. Ich habe auch Redmi/Note3 neu gestartet, und in einigen Redmi2 funktioniert es gut.

Entweder ist die offline oder online, aber in einigen redmi2 Telefon seine vollständig funktioniert nicht

public void timerTask(final Context ctx){ 
    Log.e("calling...","timer..."); 
    Timer t= new Timer(); 
    t.scheduleAtFixedRate(new TimerTask() { 
     @Override 
     public void run() { 
      try { 
       Log.e("in try","catch..."); 
       ConnectivityManager connectivityManager = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); 
       /*if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || 
         connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED)*/ 
       NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
       if (networkInfo != null && networkInfo.isAvailable()){ 
        //we are connected to a network 
        Log.e("timeTask","executing..."); 
        try{my_details = new Database_Check_In_Helper(ctx);}catch (NullPointerException npe){npe.printStackTrace();} 
        Cursor res = my_details.call_log1(); 
        // StringBuffer buffer = new StringBuffer(); 
        while (res.moveToNext()) { 
         String phNum = res.getString(0); 
         String callType = res.getString(1); 
         String callDate = res.getString(2); 
         String callDuration = res.getString(3); 
         String phoneId = res.getString(4); 
         // String dtStart = "2010-10-15T09:27:37Z"; 
         /* Date date = null; 
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 
         try { 

          date = format.parse(callDate); 
          Log.e("datefor",""+date); 
          *//*System.out.println(date);*//* 
         } catch (ParseException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         }*/ 

         DateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy"); 
         Date date=null; 
         try { 
          date = (Date) formatter.parse(callDate); 

          Calendar cal = Calendar.getInstance(); 
          cal.setTime(date); 
          String formatedDate = cal.get(Calendar.DATE) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.YEAR); 
         Log.e("formatedDate",""+formatedDate); 
         }catch (ParseException pe){pe.printStackTrace();} 

         /* SimpleDateFormat sdf3 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); 

         Date d1 = null; 
         try{ 
          d1 = sdf3.parse(callDate); 

         }catch (Exception e){ e.printStackTrace(); }*/ 


         Log.e("data are",phNum+" "+callType+" "+date+" "+callDuration+" "+phoneId); 
         String url = "http://www.rentmystay.com/m/call_tracking_log"; 
         ServiceNetworkConnection snc = new ServiceNetworkConnection(phNum, callType, date, callDuration, phoneId); 
         snc.execute(url); 
         } 
       }else{ 


        Log.e("internet","not connected"); 
       } 

      }catch (NullPointerException npe){ 
       Log.e("npe ","come under excep"); 
       npe.printStackTrace(); 
      } 
     } 
    },0,5000); 
} 

Antwort

0

Anscheinend während Internetverbindung Überprüfung sollten Sie isConnected() -Methode von activeNetwork überprüfen.

ConnectivityManager connectivityManager = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
    if (networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected()){ 
     // Network Active 
    }else{ 
     // Network Inactive 
    } 
+0

Ich versuchte isConnected() Methode auch, aber es gibt keine Verwendung. Aber das Problem ist das gleiche – Chandu