View Full Version : جلوگیری از خطا دادن برنامه وقتی اینترنت قطع هست
malloc
یک شنبه 24 خرداد 1394, 19:35 عصر
سلام دوستان .... من یه برنامه ای نوشتم که بیس اون خوندن از اینترنت هست یعنی میره و لیستی از جیسون رو میگیره و نشون میده ....
اما حالا اگه اینترنت قطع باشه برنامه خطا میده و بسته میشه ...
میخوام یکاری کنم که وقتی اینترنت نبود خود برنامه یه متنی رو بنویسه که اینترنت شما قطع هست .... و مثلا یه دکمه با نام سعی مجدد هم داشته باشه ....
کسی میتونه کمکم کنه
stranger!!!!
یک شنبه 24 خرداد 1394, 20:00 عصر
سلام دوستان .... من یه برنامه ای نوشتم که بیس اون خوندن از اینترنت هست یعنی میره و لیستی از جیسون رو میگیره و نشون میده ....
اما حالا اگه اینترنت قطع باشه برنامه خطا میده و بسته میشه ...
میخوام یکاری کنم که وقتی اینترنت نبود خود برنامه یه متنی رو بنویسه که اینترنت شما قطع هست .... و مثلا یه دکمه با نام سعی مجدد هم داشته باشه ....
کسی میتونه کمکم کنه
ی کلاس واس بررسی اینترنت
pakage neme
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class ConnectionDetector {
private Context _context;
public ConnectionDetector(Context context){
this._context = context;
}
public boolean isConnectingToInternet(){
ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SER VICE);
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;
}
}
این کد هم تو برنامت استفاده کن
/////// قبل از create
Boolean isInternetPresent = false;
ConnectionDetector cd;
////////////////////
/// درون create
cd = new ConnectionDetector(getApplicationContext());
isInternetPresent = cd.isConnectingToInternet();
if (isInternetPresent) {
new DownloadFileFromURL().execute("http://---------------e.com/p----------.txt");;
} else {
mes.setText("ابتدا اينترنت را متصل کنيد");
return;
}
امید وارم همونی باشه که میخوای
stranger!!!!
یک شنبه 24 خرداد 1394, 20:06 عصر
تکراررررررررررررررررررررر رررریییییییییییی
stranger!!!!
یک شنبه 24 خرداد 1394, 20:09 عصر
تکراررررررررررررررررییییی یییییییی
m_jafari_1370
دوشنبه 25 خرداد 1394, 07:35 صبح
با این کد میتونی چک کنی که دستگاه به اینترنت وصل هست یا نه، دسترسی به اینترنت و نتورک استیت توی مانیفست یادت نره:
public boolean isInternetAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager)getActivity().getApplicationC ontext().getSystemService(Context.CONNECTIVITY_SER VICE);
NetworkInfo activeNetworkInfo = connectivityManager
.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
tux-world
دوشنبه 25 خرداد 1394, 08:05 صبح
تکراررررررررررررررررییییی یییییییی
تکراررررررررررررررررییییی یییییییی
تکراررررررررررررررررییییی یییییییی
تکراررررررررررررررررییییی یییییییی
malloc
دوشنبه 25 خرداد 1394, 08:52 صبح
معذرت که تکراری پست گذاشتم دوستان گرامی .... فقط نکتش اینجاست که کلی کد و تابع برای اینکار پیدا کرده بودم هیچکدوم جواب نداد میخواستم مستقیم از بچه های اینجا کمک بگیرم .... حالا فعلا وقت نکردم کدهای بالا را برسی کنم
stranger!!!!
دوشنبه 25 خرداد 1394, 10:10 صبح
معذرت که تکراری پست گذاشتم دوستان گرامی .... فقط نکتش اینجاست که کلی کد و تابع برای اینکار پیدا کرده بودم هیچکدوم جواب نداد میخواستم مستقیم از بچه های اینجا کمک بگیرم .... حالا فعلا وقت نکردم کدهای بالا را برسی کنم
دوست من من منظورم از تکراری پستای خودم بود 3 بار تکرار شده بود حذف کردم در ضمن یادم رفت من کد رو از پروژه خودم کپی کردم یادم رفت بگم تو این خط
else { mes.setText("ابتدا اينترنت را متصل کنيد");
return;
mes ی تکست ویو هستش که من جای دیگه تعریقش کردم شما هم یادت نره تعریفش کنی
ظبق گفته دوستمون دسترسی به نتورک در manifestیادت نره موفق باشی
malloc
دوشنبه 25 خرداد 1394, 21:06 عصر
دوست من من منظورم از تکراری پستای خودم بود 3 بار تکرار شده بود حذف کردم در ضمن یادم رفت من کد رو از پروژه خودم کپی کردم یادم رفت بگم تو این خط
else { mes.setText("ابتدا اينترنت را متصل کنيد");
return;
mes ی تکست ویو هستش که من جای دیگه تعریقش کردم شما هم یادت نره تعریفش کنی
ظبق گفته دوستمون دسترسی به نتورک در manifestیادت نره موفق باشی
سلام و درود مجدد ... من کد شما رو گذاشتم اما این خط باعث میشه برنامه خطای بده و بسته بشه
isInternetPresent = cd.isConnectingToInternet();
132266
malloc
دوشنبه 25 خرداد 1394, 21:11 عصر
با این کد میتونی چک کنی که دستگاه به اینترنت وصل هست یا نه، دسترسی به اینترنت و نتورک استیت توی مانیفست یادت نره:
public boolean isInternetAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager)getActivity().getApplicationC ontext().getSystemService(Context.CONNECTIVITY_SER VICE);
NetworkInfo activeNetworkInfo = connectivityManager
.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
سلام و عرض ادب خدمت شما .... دوست عزیز دوتا نکته توی کد شما دیدم ... یکی اینکه "نتورک استیت" رو چطور تعریف کنم ؟؟؟ دسترسی اینترنت رو دادم اما نتورک استیت رو پیدا نمیکنم.
دوم اینکه کد شما رو که کپی میکنم تو پروژه getActivity رو پیدا نمیکنه چیکارش کنم
stranger!!!!
دوشنبه 25 خرداد 1394, 21:39 عصر
سلام و درود مجدد ... من کد شما رو گذاشتم اما این خط باعث میشه برنامه خطای بده و بسته بشه
isInternetPresent = cd.isConnectingToInternet();
درسته شما تو همون صقحه MainActivity باید cd رو تعرف کنی
ConnectionDetector cd;
stranger!!!!
دوشنبه 25 خرداد 1394, 21:44 عصر
سلام و عرض ادب خدمت شما .... دوست عزیز دوتا نکته توی کد شما دیدم ... یکی اینکه "نتورک استیت" رو چطور تعریف کنم ؟؟؟ دسترسی اینترنت رو دادم اما نتورک استیت رو پیدا نمیکنم.
دوم اینکه کد شما رو که کپی میکنم تو پروژه getActivity رو پیدا نمیکنه چیکارش کنم
اینم دسترسی
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
malloc
دوشنبه 25 خرداد 1394, 21:47 عصر
درسته شما تو همون صقحه MainActivity باید cd رو تعرف کنی
ConnectionDetector cd;
رفیق ممنون بابت پاسخ ... اما تو همون عکس که وواست فرستادم مشخصه که اونو تعریف کردم .... بالا oncreate رو نیگا کن
stranger!!!!
دوشنبه 25 خرداد 1394, 21:57 عصر
رفیق ممنون بابت پاسخ ... اما تو همون عکس که وواست فرستادم مشخصه که اونو تعریف کردم .... بالا oncreate رو نیگا کن
درسته ببخشید من امروز زیاد درگسر بودم خستمه ندیدم
ادماه کدت رو هم بزار منظورم بعد
isInternetPresent = cd.isConnectingToInternet();
malloc
دوشنبه 25 خرداد 1394, 22:17 عصر
درسته ببخشید من امروز زیاد درگسر بودم خستمه ندیدم
ادماه کدت رو هم بزار منظورم بعد
isInternetPresent = cd.isConnectingToInternet();
ممنون بخاطر وقت با ارزشی که میزاری .... من تقریبا همه توابعی که توی لینک زیر هست رو تست کردم که توابع شما دوستان هم جزوش بود
http://stackoverflow.com/questions/9570237/android-check-internet-connection
اکثرا هم بدون خطا بودن فقط نکته اینجاست که من اینترنتم رو هم که قطع میکردم بازم فکر میکرد اینترنت روشنه و زور میزد که داده ها رو لود کنه
اینم ادامه کد من.... هرجور مینویسم میره توی toast اولی یعنی همونی که متنش oh هست
cd = new ConnectionDetector(getApplicationContext());
isInternetPresent = cd.isConnectingToInternet();
oslist = new ArrayList<HashMap<String, String>>();
if (isInternetPresent) {
new JSONParse().execute();
list.setOnScrollListener(new EndlessScrollListener());
Toast.makeText(getApplicationContext(), "oh",Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(getApplicationContext(), "no",Toast.LENGTH_LONG).show();
}
stranger!!!!
دوشنبه 25 خرداد 1394, 22:28 عصر
خواهش میکنم دوست من کاری نمیکنم فقد وظیفه ای هست انجام میدم
اما مساله ای که هست کدت مشکل نداره
اما من خودم از همین کد استفاده میکنم و به درستی کار میکنه فقد وقتی اینترنت وصله ی فایل تکست دانلود میشه اما اگه وصل نباشه پیفام وصل نبودن اینترنت رو میده
اما الان اصلا متوجه نمیشم مشکل کجاس شما حالت وصل بودن اینترنت بزار کاری انجام نشه خالی بمونه فقد حالت وصل نبودن پیفام بده ببین مشکل حل میشه
از تکست ویو هم استفاده کن جای توست
malloc
دوشنبه 25 خرداد 1394, 22:54 عصر
ممنون .... دیگه نمیدونم چیکار کنم ....
موارد زیر رو توی منیفست تعریف کردم
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
اینم یه عکس که کاملا گویاست که اینترنت من قطعه اما کد داره بهم میگه که کانکتم ..... به کدهای پشت عکس دقت کنید
132269
الان یه پروژه نمونه ایجاد کردم که فقط یه دکمه بود تا روش کلیک کردم بگه وصلم یا نه .... در هر صورت میگفت وصلم
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.view.View.OnClickListener;
public class MainActivity extends Activity {
Button Btn;
Boolean isInternetPresent = false;
ConnectionDetector cd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Btn = (Button)findViewById(R.id.button1);
Btn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
cd = new ConnectionDetector(MainActivity.this);
isInternetPresent = cd.isConnectingToInternet();
if (isInternetPresent) {
Toast.makeText(getApplicationContext(), "oh",Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(getApplicationContext(), "noi",Toast.LENGTH_LONG).show();
}
}
});
}
}
package com.example.testconecttointernet;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class ConnectionDetector {
private Context _context;
public ConnectionDetector(Context context){
this._context = context;
}
public boolean isConnectingToInternet(){
ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SER VICE);
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;
}
}
stranger!!!!
دوشنبه 25 خرداد 1394, 23:22 عصر
خب شما اینجا رو تغییر دادین
cd = new ConnectionDetector(MainActivity.this);
این بزارید
cd = new ConnectionDetector(getApplicationContext());
stranger!!!!
دوشنبه 25 خرداد 1394, 23:24 عصر
در ضمن ب نطر میاذد ایمولاتور اینترنت وصله 3g نوشته بالا
شما اینترنت سیستمت قطع کن یا رو گوشس واقعی تست کن
malloc
دوشنبه 25 خرداد 1394, 23:36 عصر
در ضمن ب نطر میاذد ایمولاتور اینترنت وصله 3g نوشته بالا
شما اینترنت سیستمت قطع کن یا رو گوشس واقعی تست کن
خدایی چرا من حواسم به اون 3g رو موبایل نبود ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
الان درست شد دمت گرم خدا خیرت بده
stranger!!!!
دوشنبه 25 خرداد 1394, 23:40 عصر
خدایی چرا من حواسم به اون 3g رو موبایل نبود ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
الان درست شد دمت گرم خدا خیرت بده
خواهش برادر مهم اینه ک ب نتیجه رسیدیم موفق باشی
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.