社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

Android php mysql应用程序可以在api 26和27上运行,但不能在28上运行

Jeff • 6 年前 • 857 次点击  

大约一年前,我有一个需要登录功能的应用程序,我遵循了一个使用PHP的android应用程序与MySQL数据库对话的指南。它工作得很好,我很好地完成了我的任务在一个电话与奥利奥(API 26&27)。

但现在我需要类似的功能才能在一个新项目中再次运行,这些应用程序只是不能在Android Pie(API 28)上运行。

Login.java

import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;


import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.toolbox.Volley;

import org.json.JSONException;
import org.json.JSONObject;

public class Login extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        final EditText et_log, et_pw;
        final Button bt_log;

        et_log = (EditText) findViewById(R.id.et_login);
        et_pw = (EditText) findViewById(R.id.et_password);
        bt_log = (Button) findViewById(R.id.bt_login);

        bt_log.setOnClickListener(new View.OnClickListener() {


            @Override
            public void onClick(View v) {

                final String ID = et_log.getText().toString();
                final String PW = et_pw.getText().toString();
                Response.Listener<String> respondslistener = new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONObject jsonresponse = new JSONObject(response);
                            boolean success = jsonresponse.getBoolean("success");
                            if(success){
                                String Name = jsonresponse.getString("name");
                                String Position = jsonresponse.getString("position");

                                Intent intent = new Intent(Login.this, MainActivity.class);
                                intent.putExtra("name",Name);
                                intent.putExtra("position",Position);
                                intent.putExtra("ID",ID);
                                Login.this.startActivity(intent);
                                finish();
                            }
                            else{
                                AlertDialog.Builder builder = new AlertDialog.Builder(Login.this);
                                builder.setMessage("Login failed")
                                        .setNegativeButton("Retry",null)
                                        .create()
                                        .show();
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                };


                Loginrequest loginrequest = new Loginrequest(ID,PW, respondslistener);
                RequestQueue queue = Volley.newRequestQueue(Login.this);
                queue.add(loginrequest);
            }
        });

    }
}

登录请求.java

import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;

import java.util.HashMap;
import java.util.Map;

public class Loginrequest extends StringRequest {
    private static final String LOGIN_REQUEST_URL ="http://private-ip/login.php";
    private Map<String, String> params;

    public Loginrequest(String ID, String PW, Response.Listener<String> listener){
        super(Method.POST, LOGIN_REQUEST_URL, listener, null);
        params = new HashMap<>();
        params.put("ID",ID);
        params.put("PW",PW);
    }

    @Override
    public Map<String, String> getParams() {
        return params;
    }

以及 login.php 将返回如下内容:

{"success":true,"name":"Jeff","position":"IT"}

有可能做成馅饼吗?我需要改变什么?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51679