ورود

View Full Version : دسترسی به اینترنت



topcoder
چهارشنبه 25 بهمن 1391, 18:38 عصر
سلام دوستان من میخواستم برای برنامم اینو چک کنم که به اینترنت دسترسی داره یا نه به خاطره همین از کد زیر استفاده کردم

private boolean checkNetAccess() {
ConnectivityManager connectivity = (ConnectivityManager) 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;
}

ولی اینو تو برنامم استفاده میکنم همیشه true برمیگردونه
از permission های زیر هم استفاده کردم
android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
کسی میدونه علتش چیه ؟

farhadfery
پنج شنبه 26 بهمن 1391, 09:17 صبح
این تابعی هست که من استفاده می کنم. امیدوارم برای شما مفید واقع باشه.


ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (conMgr.getActiveNetworkInfo() == null
&& !conMgr.getActiveNetworkInfo().isConnected()
&& !conMgr.getActiveNetworkInfo().isAvailable()) {
// No connectivity - Show alert

topcoder
پنج شنبه 26 بهمن 1391, 11:54 صبح
مرسی از پاسختون اینم تست کردم فکر کنم مشکلم نحوه ی چک کردنم برای دسترسی به اینترنت باشه

من برای اینکه ببینم به نت دسترسی دارم میرم تو تنظیمات emulator و در setting تنظیمات wi-fi رو میزارم رو flight mode :| ---< که در این حالت crash میخوره
یا اینکه کلا اینترنت پی سی رو قطع میکنم در این حالتم همیشه مقدار درست رو برمیگردونه و داخل شرط نمیره !!!

ایا این کارایی که من کردم روش درستی هستن برای چک کردن اینکه برنامم به نت دسترسی داره یا نه ؟ اگر نه چه کنم :(
ممنون

hamid_hr
پنج شنبه 26 بهمن 1391, 13:29 عصر
ببين اگه بتوني يك اي پي مثل 4.2.2.4 رو ping كني ميشه فهميد به اينترنت دسترسي داري يا نه

if (InetAddress.getByAddress("4.2.2.4".getBytes()).isReachable(1000)==true)
{
//Boolean variable named network
network=true; //Ping works
}
else
{
network=false; //Ping doesnt work
}

http://www.coderanch.com/t/570467/sockets/java/Ping-IP-address-Java

نميدونم اين كار ميكنه يا نه

topcoder
پنج شنبه 26 بهمن 1391, 22:34 عصر
مرسی از پاسختون :)
با تلاش و کوشش فراوان یه چیزی پیدا کردم ! گذاشتم شاید بدرد بقیه هم بخوره :)
Please note, to test wifi connectivity on the emulator you will need to press F8 to enable/disable the 3G..

اینکه برای قطع کردن اینترنت از emulator باید f8 بزنیم :|

http://www.chrisdadswell.co.uk/android-coding-example-checking-for-the-presence-of-an-internet-connection-on-an-android-device/