繁体   English   中英

除了 wifi 连接外,我的 Android 应用程序无法正常工作

[英]My Android app does not work other than wifi connection

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

<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();

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

您可以创建一个类似这样的公共类来检查网络状态

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;
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM