【问题标题】:My Android app does not work other than wifi connection除了 wifi 连接,我的 Android 应用程序无法运行
【发布时间】:2016-09-19 03:42:55
【问题描述】:

我已在清单中授予用户权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

应用在 wifi 上运行良好,但在移动数据连接上不工作。它没有崩溃。但它没有响应。

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

        try {
           URL = "http://" + Helper.getip(getApplicationContext(), LoginActivity.ipindex) + "/Android_Service/LoginService.asmx";
           URL2=  "http://"+Helper.getip(getApplicationContext(),LoginActivity.ipindex)+"/Android_Service/AndroidServices.asmx";
        final String imageurl="http://192.168.0.180/hrm/empimages100/" + LoginActivity.EmpNo + ".jpg";
        new LoadImage().execute(imageurl);

        wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

        // mTitle = mDrawerTitle = getTitle();
        user = (ImageView) findViewById(R.id.avatar);

        TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
        Deviceid = tm.getDeviceId();

【问题讨论】:

  • 显示你的代码...

标签: android database mobile android-webservice wifi


【解决方案1】:

final String imageurl="http://192.168.0.180/hrm/empimages100/" 指您本地网络中的地址,该地址很可能无法通过 GPRS 访问。 它没有返回错误可能是因为您在new LoadImage().execute(imageurl); 部分管理了一些异常。这个字符串对我来说也像构造函数,但构建的对象不会去任何地方。

【讨论】:

    【解决方案2】:

    你可以创建一个类似这样的通用类来检查网络状态

    public class NetworkStatus {
        private static NetworkStatus instance = new NetworkStatus();
        static Context context;
        ConnectivityManager connectivityManager;
        NetworkInfo wifiInfo, mobileInfo;
        boolean connected = false;
    
        public static NetworkStatus getInstance(Context ctx) {
            context = ctx;
            return instance;
        }
        public boolean isOnline(Context con) {
            try {
                connectivityManager = (ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
                connected = networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected();
                return connected;
            } catch (Exception e) {
                e.printStackTrace();
                Toast.makeText(context, "Check Connectivity Exception: " + e.getMessage(), Toast.LENGTH_SHORT).show();
                //Log.v("connectivity", e.toString());
            }
            return connected;
        }
    
        public boolean isConnectedToInternet(){
            connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            if (connectivityManager != null){
                NetworkInfo[] info = connectivityManager.getAllNetworkInfo();
                if (info != null){
                    for (int i = 0; i < info.length; i++){
                        if (info[i].getState() == NetworkInfo.State.CONNECTED){
                            return true;
                        }
                    }
                }
            }
            return false;
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-18
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多