کلیدستان

نسخه‌ی کامل: چک کردن اینترنت و بعد اجرای برنامه اندروید
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
 سلام
دوستان و اساتید خواهشا کمک کنن. من یه کد میخوام که باهاش بشه وقتی کاربر برنامه رو باز میکنه اگه اینترنت در دسترس نبود پیغام نمایش داده بشه که تلاش مجدد. دیگه هیچی.فقط همین.برنامه فقط در صورتی باز بشه که اینترنت وصل باشه.

خواهشا دقیق بگید. تمام کلید های کلیدستان و انجمن رو بررسی کردم.به درد من نمیخوره و تخصصی هم بلد نیستم. پس اگه دقیق میتونید جواب این درخواست من رو بدید بسم الله... خیلی ضروریه.

مثلا برنامه کافه بازار رو ببینید وقتی اینترنت قطع باشه. یا همین play store
برو به این آدرس ببین این فایل Apk  خوبه  http://webcaspian.ir/fs/MobileShayan.rar
لینک دانلود کار نمیکنه دوست عزیز. apk رو چیکار کنم من؟! کد رو دارید؟

 
http://webcaspian.ir/ff/MobileShayan.rar  عذر میخوام. اینو نگاه کن. اگه خوشت اومد کدش هم هست
(۱۳۹۳/۱۱/۰۵, ۰۲:۴۳ ب.ظ)'farzan' نوشته: [ -> ]http://webcaspian.ir/ff/MobileShayan.rar  عذر میخوام. اینو نگاه کن. اگه خوشت اومد کدش هم هست

 



این که خیلی عالیه دوست عزیز. چند روزه کلافه شدم. کد فروشی هست؟ فقط سریع لطفا!
سلام دوست عزیز بهتره این کلید رو ببینی حتما به دردت میخوره کلید 2408 Wink
(۱۳۹۳/۱۱/۰۵, ۰۴:۲۹ ب.ظ)'aliasghar' نوشته: [ -> ]سلام دوست عزیز بهتره این کلید رو ببینی حتما به دردت میخوره کلید 2408 Wink

 

سلام

عرض کردم که همه رو بررسی کردم حالا یا من در اون حد بلد نیستم یا به درد کار من نمیخوره یه جورایی. نمیتونم توضیح بدم! همون اول هم گفتم همه رو دیدم
 
دوست عزیز ساده ترین کد اتصال اینترنت اینه :

کد پی‌اچ‌پی:
private boolean isNetworkConnected() { // check internet connection
ConnectivityManager cm = (ConnectivityManagergetSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni cm.getActiveNetworkInfo();
if (
ni == null) {
    
// There are no active networks.
//اینجا میگیم اگه وصل بود چیکار کنه
    
return false;
} else
//اینجا هم میگیم اگه قط بود چیکار کنه
    
return true;


موفق باشی
(۱۳۹۳/۱۱/۰۵, ۰۵:۵۵ ب.ظ)aliasghar نوشته: [ -> ]دوست عزیز ساده ترین کد اتصال اینترنت اینه :

کد پی‌اچ‌پی:
private boolean isNetworkConnected() { // check internet connection
ConnectivityManager cm = (ConnectivityManagergetSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni cm.getActiveNetworkInfo();
if (
ni == null) {
    
// There are no active networks.
//اینجا میگیم اگه وصل بود چیکار کنه
    
return false;
} else
//اینجا هم میگیم اگه قط بود چیکار کنه
    
return true;


موفق باشی



خب آخه دوست عزیز گفتم که اصلا در این حد حالی نشدم! یعنی بلد نیستم. خب میشه این کد رو که دادید تکمیل کنید و یه جوری بشه که اگه وصل بود اکتیویتی باز بشه وگرنه بگه خطا در اتصال.
ممنون میشم.
بازم ممنون از راهنمایی
ولی این کدها کامل نیستن و منم بلد نیستم این مورد رو تکمیل کنن
 
نبود؟ خب بلد نیستید پیشنهاد ندید. من از اول گفتم ((( 
خواهشا دقیق بگید. تمام کلید های کلیدستان و انجمن رو بررسی کردم.به درد من نمیخوره و تخصصی هم بلد نیستم. پس اگه دقیق میتونید جواب این درخواست من رو بدید))))
ببینید شاید پاسخ من به کارتون اومد.
شما یک کلاس به نام Networkایجاد کنید و کد زیر را درون ان انتقال بدهید.
کد پی‌اچ‌پی:
public class Network {
      
    public 
boolean isNetworkConnected(Context ctx) {
        
NetworkInfo info = (NetworkInfo) ((ConnectivityManagerctx
                
.getSystemService(Context.CONNECTIVITY_SERVICE))
                .
getActiveNetworkInfo();
        if (
info == null || !info.isConnected()) {
            return 
false;
        }
        return 
true;
    }
      

سپس درون اکتیویتی خودتون هم کد زیر را قرار بدید.
کد پی‌اچ‌پی:
Network isNetwork = new Network();
                  
                if (
isNetwork.isNetworkConnected(getApplicationContext()) == true) {
          
                    
//code vase Ejra
                   
                
} else {
                    
//net is notAvailable
                     
Toast.makeText(getApplicationContext(), "دستگاه به اینترنت متصل نیست"Toast.LENGTH_SHORT).show();
                } 
بنظر من امکان داره مشکلتون حل بشه
فقط یک نکته ای هست که اگر دیدید برنامه به نام کلاستون که در بالا ذکر کردم ایراد گرفت یک اسم دیگه براش انتخاب کنید.

 
در ضمن این لینک هم شاید به دردتون خورد
شمادر فایل مانیفست برنامه تون دریافت کننده رویداد را یه سیستم عامل اندروید معرفی میکنیم.
لینک
یعنی در لینک بالا کدهای زیر اجازه دسترسی به اینترنت و کنترل وضعیت اینترنت را میگیرند.
کد پی‌اچ‌پی:
<uses-permission android:name="android.permission.INTERNET" />
<
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
سپس باید یک کلاس با همین نامی که معرفی کرده ایم (NetworkReceiver) بسازیم.

لینک

اگر برنامه را بر روی موبایل اجرا کنید متوجه میشوید که اتفاق خاصی رخ نمیدهد چراکه ما در Main Activity کار خاصی نکرده ایم. Logcat را باز کنید و اگر به اینترنت متصل هستید آنرا قطع کنید. میبینید که پیام Internet not found به همراه سایر پیامهایی که در متد فوق نوشته بودیم نمایش داده میشود.
آقایون به من کد ندید اینجوری. چند هزار بار بگم؟؟ 
یا بکنیدش پروژه بدید یا اینجوری الکی کد ندید دیگه
دوستان لطف کنن با نظرات کلی دیگران رو گیج نکنن

1- 

کد پی‌اچ‌پی:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="www.webcaspian.com"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="www.webcaspian.com.MainActivity"
            android:label="@string/app_name"
            android:configChanges="orientation|keyboardHidden" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest> 

2-

کد پی‌اچ‌پی:
package www.webcaspian.com;


import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.view.Menu;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class 
MainActivity extends Activity {
    private 
WebView webView;
    @
Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_main);
        
webView=(WebViewfindViewById(R.id.webView1);
        new 
NetCheck().execute();
    }

    @
Override
    
public boolean onCreateOptionsMenu(Menu menu) {
        
// Inflate the menu; this adds items to the action bar if it is present.
        
getMenuInflater().inflate(R.menu.mainmenu);
        return 
true;
    }
    
    public 
boolean shouldOverrideUrlLoading(WebView viewString url) {              
        
view.loadUrl(url);
        return 
true;
    }
    private 
void startWebView(String url) {
        
        
webView.setWebViewClient(new WebViewClient() {      
            
ProgressDialog progressDialog;
          
            
//If you will not use this method url links are opeen in new brower not in webview
            
public boolean shouldOverrideUrlLoading(WebView viewString url) {              
                
view.loadUrl(url);
                return 
true;
            }
        
// TODO Auto-generated method stub
            
public void onLoadResource (WebView viewString url) {
                
// if (progressDialog == null) {
                     // in standard case YourActivity.this
                    // progressDialog = new ProgressDialog(ShowWebView.this);
                   //  progressDialog.setMessage("Loading...");
                   //  progressDialog.show();
                // }
             
}
             public 
void onPageFinished(WebView viewString url) {
                 try{
                 if (
progressDialog.isShowing()) {
                     
progressDialog.dismiss();
                     
progressDialog null;
                 }
                 }catch(
Exception exception){
                     
exception.printStackTrace();
                 }
             }
        });
        
webView.getSettings().setJavaScriptEnabled(true);
        
webView.loadUrl(url);
    }
     private class 
NetCheck extends AsyncTask<String,String,Boolean>
     {
         private 
ProgressDialog nDialog;

         @
Override
         
protected void onPreExecute(){
             
super.onPreExecute();
             
nDialog = new ProgressDialog(MainActivity.this);
             
nDialog.setTitle(R.string.hello_world);
             
nDialog.setMessage("Loading..");
             
nDialog.setIndeterminate(false);
             
nDialog.setCancelable(true);

             
nDialog.show();
         }
         
         @
Override
         
protected Boolean doInBackground(String... args){

             
ConnectivityManager cm = (ConnectivityManagergetSystemService(Context.CONNECTIVITY_SERVICE);
             
NetworkInfo netInfo cm.getActiveNetworkInfo();
             if (
netInfo != null && netInfo.isConnected()) {
                 try {
                     
URL url = new URL("http://www.google.com");
                     
HttpURLConnection urlc = (HttpURLConnectionurl.openConnection();
                     
urlc.setConnectTimeout(3000);
                     
urlc.connect();
                     if (
urlc.getResponseCode() == 200) {
                         return 
true;
                     }
                 } catch (
MalformedURLException e1) {
                     
// TODO Auto-generated catch block
                     
e1.printStackTrace();
                 } catch (
IOException e) {
                     
// TODO Auto-generated catch block
                     
e.printStackTrace();
                 }
             }
             return 
false;

         }
         protected 
void onPostExecute(Boolean th){

             if(
th == true){
                 
nDialog.dismiss();
                 
startWebView("http://www.shayan.1rast.com");
             }
             else{
                 
nDialog.dismiss();
                 
Toast.makeText(getApplicationContext(), R.string.NotnetworkToast.LENGTH_SHORT).show();
             }
         }
     }
    

 
ببین این کد خوبه؟

کد پی‌اچ‌پی:
package com.khayyami.league;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
 
public class Menu<TaskStackBuilder> extends Activity {
    
    
    
/** Called when the activity is first created. */
    @Override
    protected void onCreate
(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);    
        
       
        
        
new NetCheck().execute();
    }
    



public void ShowAlertDialog() {
 AlertDialog.Builder alertDialog = new AlertDialog.Builder(Menu.this);
alertDialog.setTitle(R.string.title);
alertDialog.setMessage(R.string.message);
alertDialog.setCancelable(false);

//Setting Positive "Yes" Button
alertDialog.setPositiveButton(R.string.yes,
       new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialogint which) {
       dialog.cancel();
       new NetCheck().execute();
   }
});
//Setting Negative "NO" Button
alertDialog.setNegativeButton(R.string.no,
new 
DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialogint which) {
       // Write your code here to invoke NO event
       finish();
       
   
}
});
//Showing Alert Message
alertDialog.show();
}


/**
* Async Task to check whether internet connection is working.
**/

private class NetCheck extends AsyncTask<String,String,Boolean>
{
private 
ProgressDialog nDialog;

@
Override
protected void onPreExecute(){
super.onPreExecute();
nDialog = new ProgressDialog(Menu.this);
nDialog.setTitle("در حال بررسی اتصال به اینترنت");
nDialog.setMessage("لطفا کمی صبر کنید");
nDialog.setIndeterminate(false);
nDialog.setCancelable(false);

nDialog.show();
}
/**
* Gets current device state and checks for working internet connection by trying Google.
**/
@Override
protected Boolean doInBackground(String... args){

ConnectivityManager cm = (ConnectivityManagergetSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo cm.getActiveNetworkInfo();
if (
netInfo != null && netInfo.isConnected()) {
  try {
      URL url = new URL("http://www.google.com");
      HttpURLConnection urlc = (HttpURLConnectionurl.openConnection();
      urlc.setConnectTimeout(3000);
      urlc.connect();
      if (urlc.getResponseCode() == 200) {
          return true;
      }
  } catch (MalformedURLException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
  } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
  }
}
return 
false;

}
@
Override
protected void onPostExecute(Boolean th){

if(
th == true){
  nDialog.dismiss();
  Toast.makeText(getApplicationContext(), "برنامه با موفقیت به اینترنت وصل شد ! "Toast.LENGTH_SHORT).show();
 
  
// new GetData().execute();
}
else{
  nDialog.dismiss();
  ShowAlertDialog();
}

     ;
      


                
        
              
        
        
        
        
        
{
           
       
        
        
   
        
        
        
               
}

                
        
        
}

منم حرفه ای نیستم امایه چیز تو ذهنمه
میتونی این کد رو به جای اینکه بذاریش توی onclick listener یه دکمه ، مستقیم بذاریش توی متد ocreated اینطوری وقتی کاربر وارد برنامه میشه اولین کار اینه که اینترنت چک بشه
برای محکم کاری بذارش بالاترین خط متد oncreated
اینطوری اولین کارش چک شدن اینترنته
بعدش هم باید کاربرد دکمه ی بیخیال رو عوض کنی
برو به جای کد های onclick listinier اون دکمه ی بی خیال ، کد های خروج رو بذار و متن بی خیال رو به خروج تغییر بده
امیدوارم کارت راه بیوفته
کد ها در کلید2408