بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
طریقه اطلاع از اتصال به اینترنت
با سلام خدمت دوستان
یه برنامه چت نوشتم قصد دارم به محض اتصال به اینترنت چت های برنامه بیاد
یه برودکست ریسیور نوشتم ولی برای api بیش از 23 میگن باید از job scheduler استفاده کرد
کسی کار کرده و کدی واسه نمونه داره ؟ممنون میشم راهنمایی کنید
برای این سوال 1 پاسخ وجود دارد.

پاسخ به سوال
احسان
7 سال پیش
+2
0
سلام
شما می تونید یه برود کست بنویسی که زمان اتصال به اینتزنت کاری رو که لازم دارید انجام بده.
فقط اینکه ممکنه مصرف باتری بالاتر از حالت نرمالش بشه.
package launcher.base.app.ehsan.com.minelauncher.broadcast;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.widget.Toast;
import launcher.base.app.ehsan.com.minelauncher.R;
import launcher.base.app.ehsan.com.minelauncher.model.db.LauncherDatabase;
import launcher.base.app.ehsan.com.minelauncher.tools.G;
import launcher.base.app.ehsan.com.minelauncher.tools.ServerCenterClass;
import launcher.base.app.ehsan.com.minelauncher.tools.Tools;
/**
* Created by Ehsan
* on 12/19/2017.
* www.codenevisha.ir
*/
public class ConnectionReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
ConnectivityManager connectMg = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
android.net.NetworkInfo wifi = connectMg
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
android.net.NetworkInfo mobile = connectMg
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable() && isOnline(context)) {
Toast.makeText(context, R.string.notify_wifi_net_connection, Toast.LENGTH_SHORT).show();
} else if (mobile.isAvailable() && isOnline(context)) {
Toast.makeText(context, R.string.notify_mobile_net_connection, Toast.LENGTH_SHORT).show();
}
}
}
public boolean isOnline(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
//should check null because in airplane mode it will be null
return (netInfo != null && netInfo.isConnected());
}
}
و توی منیفست باید این برودکست رو رجیستر کنی:
<receiver android:name=".broadcast.ConnectionReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"
tools:ignore="BatteryLife"/>
</intent-filter>
</receiver>
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .