PDA

View Full Version : چک کردن اتصال اینترنت و اجرای سرویس - بدون اکتیویتی



vice_city
پنج شنبه 25 تیر 1394, 00:25 صبح
سلام.
یه برنامه ایجاد کردم که هیچ اکتیویتی نداره.
یه سرویسه که کارهای پس زمینه خودش و اجرا میکنه.
حالا مشکل اینجاست که چون اکتیویتی در کار نیست نمیدونم چطور باید سرویس رو فراخوانی و اجرا کنم.
خاستم از رسیور بوت استفاده کنم تا موقع استارت آپ سرویس اجرا بشه ، اما ظاهرا این رسیور از نسخه 3.1 به بعد اندروید یه باگ داره و درست کار نمیکنه.
حالا بنظرم اومد که مثلا اگه توی مانیفست یه رسیور باشه که چک کنه ببینه کی دستگاه به اینترنت وصل میشه ، و بعد از وصل شده سرویس رو فراخانی و اجرا کنه کار من راه بیوفته.
لطفا راهنمایی کنید. ممنون.
اگه این نشه ، استفاده از آلارم منیجر هم خوبه ، اگه بشه جوری نوشتش که بدون اکتیویتی مثلا هر یه ساعت یه بار چک کنه ببیه سرویس فعاله اگه نیست اجراش کنه.

A.iman
پنج شنبه 25 تیر 1394, 01:07 صبح
این کد برای من کار کرد :
public class NetworkChangeReceiver extends BroadcastReceiver {

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


if(checkInternet(context))
{
Toast.makeText(context, "Network Available Do operations",Toast.LENGTH_LONG).show();
}


}




boolean checkInternet(Context context) {
ServiceManager serviceManager = new ServiceManager(context);
if (serviceManager.isNetworkAvailable()) {
return true;
} else {
return false;
}
}


}
ServiceManager.java
public class ServiceManager extends ContextWrapper {

public ServiceManager(Context base) {
super(base);
}


public boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
return true;
}
return false;
}



}

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

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

vice_city
پنج شنبه 25 تیر 1394, 05:30 صبح
بسیار ممنونم و متشکر.
میشه لطفا کدهای مانیفست رو کامل بزارید؟
داخل رسیور تعریف شده توی مانیفست اکشنی نوشتید؟

vice_city
یک شنبه 28 تیر 1394, 18:47 عصر
سلام.
چطور از داخل یه اپ جدا که اکتیویتی هم داره ، یه برنامه که سرویس و بدون اکتیویتی هست و روی همون گوشی نصبه صدا بزنم و اجرا کنم؟
چطور میشه کاری کنم که اندروید یه برنامه رو توی قسمت دیتا یوزیج اینترنت ( که نشون میده کدوم برنامه ها تا الان چقد از اینترنت استفاده کردن) نشون نده؟