Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么改装可以';t解决无连接问题-在Android上检查互联网连接?_Java_Android_Android Studio_Networking_Retrofit - Fatal编程技术网

Java 为什么改装可以';t解决无连接问题-在Android上检查互联网连接?

Java 为什么改装可以';t解决无连接问题-在Android上检查互联网连接?,java,android,android-studio,networking,retrofit,Java,Android,Android Studio,Networking,Retrofit,大家好,我有一个特别的问题。我所有的网络通话都使用翻新库。我有一个方法可以向另一个用户发送点,如果发生任何错误,服务器将返回代码400,并在旁边显示字符串,我必须向用户显示。这个东西正在工作,我是这样创建的(NetworkSDK发送一个带有参数的主体,如果出现错误状态字符串,则希望收到),因此从逻辑上讲,我在onResponse方法中处理我的错误(如果NetworkSDK收到一个带有错误字符串的对象),如果发生onFailure,则没有错误。但现在我有一个更大的问题。若根本并没有连接,若用户在该

大家好,我有一个特别的问题。我所有的网络通话都使用翻新库。我有一个方法可以向另一个用户发送点,如果发生任何错误,服务器将返回代码400,并在旁边显示字符串,我必须向用户显示。这个东西正在工作,我是这样创建的(NetworkSDK发送一个带有参数的主体,如果出现错误状态字符串,则希望收到),因此从逻辑上讲,我在
onResponse
方法中处理我的错误(如果NetworkSDK收到一个带有错误字符串的对象),如果发生
onFailure
,则没有错误。但现在我有一个更大的问题。若根本并没有连接,若用户在该片段中关闭internet,它将再次转到
onFailure
并显示点已发送的消息。一般来说,如果状态代码比正常值高200,我会通过状态代码实现,但由于某些原因,我无法通过response.code()命令获取任何状态代码。代码如下:

  @Override
    public void onClick(View v) {
        try {
            final String cardNo;
            String amountstring = bodovi.getText().toString();
            final Integer amount = Integer.valueOf(amountstring);
            cardNo = brojkartice.getText().toString();
            Log.d("Broj bodova:", amount.toString());
            Log.d("Broj kartice:", cardNo);
            final SendPoints Posiljka = new SendPoints();
            Posiljka.setAmount(amount);
            Posiljka.setCardNumber(cardNo);
                NetworkSDK.getInstance().SendPoints(Posiljka, new Callback<SendPointsResponse>() {
                    @Override
                    public void onResponse(Call<SendPointsResponse> call, Response<SendPointsResponse> response) {

                        Log.d("Response code:", "" + response.code());
                        Log.d("Kartica", Posiljka.getCardNumber());
                        Log.d("Broj bodova", Posiljka.getAmount().toString());


                        try {
                            SendPointsResponse error = (new Gson()).fromJson(response.errorBody().string(), SendPointsResponse.class);

                            if (error.getCode().equals("-1"))
                                Toast.makeText(getActivity(), "Neuspješno slanje bodoava. Neispravni ulazni podaci.", Toast.LENGTH_SHORT).show();
                            if (error.getCode().equals("-2"))
                                Toast.makeText(getActivity(), "Neuspješno slanje bodova. Korisnički podaci nisu popunjeni.", Toast.LENGTH_SHORT).show();
                            if (error.getCode().equals("-3"))
                                Toast.makeText(getActivity(), "Neuspješno slanje bodova. Korisnik ima rezervisanu nagradu.", Toast.LENGTH_SHORT).show();
                            if (error.getCode().equals("-4"))
                                Toast.makeText(getActivity(), "Neuspješno slanje bodova. U toku jednog mjeseca bodove je moguće poslati maksimalno dva puta.", Toast.LENGTH_SHORT).show();
                            if (error.getCode().equals("-5"))
                                Toast.makeText(getActivity(), "Neuspješno slanje bodova. Bodove nije moguće poslati samom sebi.", Toast.LENGTH_SHORT).show();
                            if (error.getCode().equals("-6"))
                                Toast.makeText(getActivity(), "Neuspješno slanje bodova. Korisnik ne može primiti bodove.", Toast.LENGTH_SHORT).show();
                            if (error.getCode().equals("-100"))
                                Toast.makeText(getActivity(), "Neuspješno slanje bodova. Greška nepoznata.", Toast.LENGTH_SHORT).show();


                        } catch (IOException e) {
                            e.printStackTrace();
                        }


                    }

                    @Override
                    public void onFailure(Call<SendPointsResponse> call, Throwable t) {

                        Toast.makeText(getActivity(), "Uspješno slanje bodova.", Toast.LENGTH_SHORT).show();
                    }
                });



        }catch (Exception e) {
            Toast.makeText(getActivity(), "Podaci nisu ispravni, provjerite podatke !", Toast.LENGTH_SHORT).show();

        }   }

});


}
@覆盖
公共void onClick(视图v){
试一试{
最终字符串卡号;
String amountstring=bodovi.getText().toString();
最终整数金额=Integer.valueOf(amountstring);
cardNo=brojkartie.getText().toString();
Log.d(“Broj bodova:,amount.toString());
Log.d(“Broj kartice:,cardNo”);
final SendPoints Posiljka=新SendPoints();
Posiljka.setAmount(金额);
Posiljka.设置卡号(卡号);
NetworkSDK.getInstance().SendPoints(Posiljka,new Callback()){
@凌驾
公共void onResponse(调用、响应){
Log.d(“响应代码:”,“+Response.code());
Log.d(“Kartica”,Posiljka.getCardNumber());
Log.d(“Broj bodova”,Posiljka.getAmount().toString());
试一试{
SendPointsResponse error=(new Gson()).fromJson(response.errorBody().string(),SendPointsResponse.class);
if(error.getCode().equals(“-1”))
Toast.makeText(getActivity(),“Neuspješno slanje bodoava.Neisravni ulazni podaci.”,Toast.LENGTH_SHORT).show();
if(error.getCode().equals(“-2”))
Toast.makeText(getActivity(),“Neuspješno slanje bodova.Korisnički podaci nisu popungeni.”,Toast.LENGTH_SHORT.show();
if(error.getCode().equals(“-3”))
Toast.makeText(getActivity(),“Neuspješno slanje bodova.Korisnik ima rezervisanu nagradu.”,Toast.LENGTH_SHORT).show();
if(error.getCode().equals(“-4”))
Toast.makeText(getActivity(),“Neuspješno slanje bodova.U toku jednog mjeseca bodove je moguće poslati maksimalno dva puta.”,Toast.LENGTH_SHORT).show();
if(error.getCode().equals(“-5”))
Toast.makeText(getActivity(),“Neuspješno slanje bodova.Bodove nije moguće poslati samom sebi.”,Toast.LENGTH_SHORT).show();
if(error.getCode().equals(“-6”))
Toast.makeText(getActivity(),“Neuspješno slanje bodova.Korisnik ne može primiti bodove.”,Toast.LENGTH_SHORT).show();
if(error.getCode().equals(“-100”))
Toast.makeText(getActivity(),“Neuspješno slanje bodova.Greška nepoznata.”,Toast.LENGTH_SHORT.show();
}捕获(IOE异常){
e、 printStackTrace();
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
Toast.makeText(getActivity(),“Uspješno slanje bodova.”,Toast.LENGTH_SHORT.show();
}
});
}捕获(例外e){
Toast.makeText(getActivity(),“Podaci nisu ispravni,provjerite podatke!”,Toast.LENGTH_SHORT.show();
}   }
});
}
我基本上需要一些关于OnFailure方法的想法来检测用户是否关闭了internet并显示正确的消息

如果internet连接状态可通过连接服务在
ConnectivityManager
中使用,则可以检查此项,其中有详细说明

请注意,您的应用程序需要获得网络状态的权限:

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

如果internet连接状态在
ConnectivityManager
中通过连接服务可用,您可以在此处查看详细说明

请注意,您的应用程序需要获得网络状态的权限:

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


现在很好,我做了网络检查器功能,但忘了包括权限太好了!我明确指出,因为这是我们用来遗忘的东西;)这是好的,现在我做了网络检查功能,但我忘了包括许可证太棒了!我明确指出,因为这是我们用来遗忘的东西;)