无法将凌空发布请求从android手机发送到我的数据库

时间:2019-09-24 03:51:54

标签: java android json android-volley

我正在使用volley来使我的android通过使用PHP作为通过数据库的桥梁来与数据库通信。

以下是我在 android studio 上的登录代码,该代码可以在模拟器 Nexus 4 API 23 上正常运行,但是当我尝试使用智能手机运行该应用程序时三星A5-2017 ,它仅可在界面上使用,但数据无法正常发送/使用。顺便说一句,我正在此应用程序上使用 SDK 29版

public class LoginActivity extends AppCompatActivity implements View.OnClickListener {


EditText editTextNoPelajar,editTextPassword;
TextView link_register;
Button btnLogin;
private static String URL_LOGIN = "http://10.1.19.2/attendance/Login.php";
SessionManager sessionManager;

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

    sessionManager = new SessionManager(this);

    editTextNoPelajar = (EditText)findViewById(R.id.editTextNoPelajar);
    editTextPassword = (EditText) findViewById(R.id.editTextPassword);
    link_register = (TextView) findViewById(R.id.textViewRegister);
    btnLogin = (Button) findViewById(R.id.buttonLogin);


    btnLogin.setOnClickListener(this);
}

private void userLogin(){
   final String NoPelajar = editTextNoPelajar.getText().toString().trim();
   final String Password = editTextPassword.getText().toString().trim();

    if(NoPelajar.isEmpty() || Password.isEmpty()){
        Toast.makeText(this,"Please fill up all the requirement",Toast.LENGTH_LONG).show();
    }

    else{

        StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_LOGIN,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            System.out.println(response);
                            JSONObject jsonObject = new JSONObject(response);
                            String success = jsonObject.getString("error");
                            JSONArray jsonArray = jsonObject.getJSONArray("login");


                            if(success.equals("0")){

                                for(int i = 0 ; i < jsonArray.length();i++){
                                    JSONObject object = jsonArray.getJSONObject(i);

                                    String name = object.getString("Name").trim();
                                    String KodProgram = object.getString("KodProgram").trim();

                                    sessionManager.createSession(name,KodProgram);

                                    Intent intent = new Intent(LoginActivity.this,HomeActivity.class);
                                    intent.putExtra("Name",name);
                                    intent.putExtra("KodProgram",KodProgram);
                                    startActivity(intent);
                                    finish();
                                }

                            }

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

                        }

                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getApplicationContext(),error.getMessage(),Toast.LENGTH_LONG).show();
            }
         })
        {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String,String> params = new HashMap<>();
                params.put("NoPelajar",NoPelajar);
                params.put("Password",Password);

                return params;
            }
        };

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

}

@Override
public void onClick(View view) {
    if(view == btnLogin){
        userLogin();
    }

}

}

另外,我已经在清单上启用了所有互联网权限,如下所示:

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

一旦我点击按钮登录,它就会显示

I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
D/ViewRootImpl@8b8d06[Toast]: setView = android.widget.LinearLayout{9070fc7 V.E...... ......I. 0,0- 
0,0} TM=true MM=false
D/ViewRootImpl@8b8d06[Toast]: dispatchAttachedToWindow
V/Surface: sf_framedrop debug : 0x4f4c, game : false, logging : 0
D/ViewRootImpl@8b8d06[Toast]: Relayout returned: old=[0,0][0,0] new=[462,1596][618,1728] result=0x7 
surface={valid=true 536733736960} changed=true
D/ViewRootImpl@8b8d06[Toast]: MSG_RESIZED_REPORT: frame=Rect(462, 1596 - 618, 1728) ci=Rect(0, 0 - 
0, 0) vi=Rect(0, 0 - 0, 0) or=1
D/ViewRootImpl@8b8d06[Toast]: dispatchDetachedFromWindow
D/InputEventReceiver: channel '630e1a0 Toast (client)' ~ Disposing input event receiver.
D/InputEventReceiver: channel '630e1a0 Toast (client)' ~NativeInputEventReceiver.
I/zygote64: Do full code cache collection, code=250KB, data=195KB
I/zygote64: After code cache collection, code=247KB, data=157KB
I/zygote64: Do partial code cache collection, code=248KB, data=160KB
I/zygote64: After code cache collection, code=248KB, data=160KB
Increasing code cache capacity to 1024KB

我在哪里做错人了?..请帮助我解决这个问题,已经有2天的时间试图找出解决方案。谢谢

0 个答案:

没有答案