Androidda xizmat bilan internet aloqasi tekshirilmoqda

Ilovam faollik yordamida ochilganda internetga ulanishni qanday tekshirishni bilaman. Lekin ilovam ishlamayotgan paytda xizmatdagi ulanishni qanday tekshirish mumkin?


person S.M_Emamian    schedule 10.03.2014    source manba
comment
Translyatsiya qabul qiluvchisidan foydalaning, uni manifestda ro'yxatdan o'tkazing va ushbu eshittirish qabul qiluvchining onReceive usulida o'zgargan tarmoq holati to'g'risidagi ma'lumotlarni xizmatingizga uzating.   -  person Adnan    schedule 11.03.2014


Javoblar (3)


Translyatsiya qabul qiluvchisidan foydalanishingiz kerak bo'lishi mumkin. Siz doimiy ravishda ulanish bo'yicha yangilanishlarni olasiz. (Ulangan/O'chirilgan)

Misol:

Manifest:

Ruxsatlar:

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Translyatsiya qabul qiluvchini ro'yxatdan o'tkazing:

<receiver android:name=".ConnectivityChangeReceiver" >
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>

Qabul qiluvchilar sinfini yarating:

public class ConnectivityChangeReceiver extends BroadcastReceiver {


    @Override
    public void onReceive(Context context, Intent intent) {

        // Explicitly specify that which service class will handle the intent.
        ComponentName comp = new ComponentName(context.getPackageName(),
                YourService.class.getName());
        intent.putExtra("isNetworkConnected",isConnected(context));
        startService(context, (intent.setComponent(comp)));
    }

 public  boolean isConnected(Context context) {
           ConnectivityManager connectivityManager = ((ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE));
           NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
           return networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected();
   }

}

Xizmat sinfingiz:

class YourService extends IntentService{

    @Override
    protected void onHandleIntent(Intent intent) {
      Bundle extras = intent.getExtras();
      boolean isNetworkConnected = extras.getBoolean("isNetworkConnected");
      // your code

   }

}
person Adnan    schedule 10.03.2014
comment
setResultCode(Activity.RESULT_OK); noto'g'ri. nega? stackoverflow.com/questions/22360950/ - person S.M_Emamian; 13.03.2014
comment
Siz ushbu qatorni xavfsiz olib tashlashingiz mumkin. - person Adnan; 13.03.2014
comment
Agar ilova ishlamayotgan bo'lsa va ishga tushirish xizmati fon xizmati bo'lsa, u ishlaydimi? - person Golu; 29.06.2020


Quyidagi koddan foydalanib, qurilma internetga ulangan yoki yo'qligini tekshirishingiz mumkin. Bu funksiyadan istalgan vaqtda istalgan veb-xizmat yoki internet bilan bog'liq har qanday vazifaga qo'ng'iroq qilishga urinayotganingizda foydalanishingiz mumkin. Bu funksiyadan fonda ishlaydigan android xizmatida foydalanishingiz mumkin.

public boolean isConnectingToInternet(Context _context){
        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;
    }
person Sanket Patel    schedule 10.03.2014
comment
Bu savolga javob bermaydi. OP, ilova ochiq bo'lmaganda qanday qilib yo'qligini bilishini aytdi - person codeMagic; 11.03.2014
comment
bu mening javobim emas !!! Ilovam qachon ochiqligini bilaman, bu faoliyatda internet mavjudligi yoki yo'qligini qanday tekshirish mumkin - person S.M_Emamian; 11.03.2014
comment
Men javobni yangiladim. Siz ushbu funksiyadan Android xizmatlarida foydalanishingiz mumkin, Siz xizmatni yaratishingiz va uni ishga tushirishingiz kerak. Qurilmani qayta ishga tushirgandan so'ng xizmatni avtomatik ishga tushirish va hokazolarni boshqarish uchun siz eshittirish qabul qiluvchilarini ishlatishingiz kerak bo'lishi mumkin. - person Sanket Patel; 11.03.2014