Ilovam faollik yordamida ochilganda internetga ulanishni qanday tekshirishni bilaman. Lekin ilovam ishlamayotgan paytda xizmatdagi ulanishni qanday tekshirish mumkin?
Androidda xizmat bilan internet aloqasi tekshirilmoqda
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
}
}
Tizim tarmoq ulanishi oʻzgarganda Broadcast beradi, uni BroadcastReceiver< orqali oʻqishingiz mumkin. /a>. Bu sizning ilovangiz ochiq yoki yopiq bo'lishidan qat'i nazar, chaqiriladi.
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;
}