باز شدن اکتیویتی در صورت فعال بودن اینترنت
سلام و خدا قوت
من یک اکتیویتی دارم که نیاز به اینترنت داره . حالا میخوام وقتی که کاربر میخواد وارد اون اکتیویتی بشه یه هشدار داده بشه و بپرسه که اینترنت فعال هست یا نه.
اگر فعال بود بتونه کاربر (بله ) رو انتخاب کنه و وارد اکتیویتی بشه ، و اگر فعال نبود ( خیر ) روانتخاب کنه و هیچ اتفاقی نیافته .
ممنون میشم راهنمایی بفرمائید.
از کد زیر استفاده کنید:
HttpClient client = new DefaultHttpClient();
HttpGet method = new HttpGet("http://www.yourURL.com");
try {
HttpResponse response = client.execute(method);
// کدی که می خوای در صورت اتصال به اینترنت انجام بشه
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
Toast.makeText(context, "لطفا به اینترنت متصل شوید",
Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
من یه ایمیج ویو دارم میخوام وقتی روش کلیک میشه پیام بده که به اینترنت متصل باشید بعد از اگر بود
بره به اکتیویتی بعدی که rss یک سایت رو میخونه .
اینم کد من ، حالا کد شما رو کجا و چطور قرار بدم
ImageView news = (ImageView)findViewById(R.id.news);
news.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { startActivity(new Intent(p1.this,RssTabsActivity.class)); } });
لطفا کدتون از قسمت مربوط به کد بذارید تا خوانا باشه
ولی در پاسخ : کدی که دوستمون گذاشتند در برنامتون بزارید و جای که نوشته کد خودتون بزارید فقط یه boolean که از قبل تعریف کردید( به صورت فیلد) مقدار دهی کنید مثلا true بشه
حالا وقتی روی ایمیج ویو کلیلک میشه اول مقدار boolean چک کنید اگه true بود دستور انجام بشه در غیر این صورت مثلا یه toast بزارید و بگید اینترنت وصل نیست .
موفق باشید.
یا از روشی که دوستمون doost_fu گفتند استفاده کنید یا این که یک متد بنویسید با مقدار برگشتی boolean و بعد کد بنده رو داخل اون قرار بندید،حالا قبل از StartActivity این متد را صدا بزنید:نکته بسیار مهم این است که حتما ابتدا در onCreate این دو خط رو اضافه کنید( و minimum SDK شما باید 9 به بالا باشه) :
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
سپس:
if(checkNetwork()){
startActivity(intent);
}else{
Toast("یه اینترنت متصب شوید");
}
public static boolean checkNetwork() {
HttpClient client = new DefaultHttpClient();
HttpGet method = new HttpGet("http://www.yoursite.com");
try {
HttpResponse response = client.execute(method);
return true;
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
return false;
} catch (NetworkOnMainThreadException n) {
return false;
}
return true;
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .