android 9+;上的按钮操作不正常;,但对4-8有效

android 9+;上的按钮操作不正常;,但对4-8有效,android,authentication,registration,android-9.0-pie,Android,Authentication,Registration,Android 9.0 Pie,我的应用程序在安卓4上运行,我假设通过这种方式生成它,它将在安卓9、10等上正常运行 但是,当在使用安卓9的设备上输入应用程序时,它们无法正确注册或登录,因为按钮没有响应。然而,在其他版本的安卓系统中,它们工作得非常完美 public class LoginRequestion extends StringRequest { private static final String LOGIN_REQUEST_URL="http://...Login.php"; private

我的应用程序在安卓4上运行,我假设通过这种方式生成它,它将在安卓9、10等上正常运行

但是,当在使用安卓9的设备上输入应用程序时,它们无法正确注册或登录,因为
按钮没有响应。然而,在其他版本的安卓系统中,它们工作得非常完美

public class LoginRequestion extends StringRequest {

    private static final String LOGIN_REQUEST_URL="http://...Login.php";
    private Map<String, String> params;
    public LoginRequestion(String usuario, String contrasena, Response.Listener<String> listener) {

        super(Request.Method.POST, LOGIN_REQUEST_URL, listener, null);
        params = new HashMap<>();

        params.put("usuario", usuario);
        params.put("contrasena", contrasena);

    }

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

        }
    }
公共类登录问题扩展了StringRequest{
私有静态最终字符串登录\u请求\u URL=”http://...Login.php";
私有映射参数;
公共登录问题(字符串usuario、字符串contrasena、Response.Listener){
super(Request.Method.POST,LOGIN\u Request\u URL,listener,null);
params=新的HashMap();
参数put(“usuario”,usuario);
参数put(“contrasena”,contrasena);
}
@凌驾
公共映射getParams(){
返回参数;
}
}
安卓9以上

  • 备选案文1:

    • 创建一个文件network\u security\u config,res/xml/network\u security\u config

      <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
         <domain-config cleartextTrafficPermitted="true">
           <domain includeSubdomains="true">your_domain.com</domain>
         </domain-config>
      </network-security-config>
      
      
      your_domain.com
      
    • 在AndroidManifest中:

      <?xml version="1.0" encoding="utf-8"?>
        <manifest ... >
          <application android:networkSecurityConfig="@xml/network_security_config"
                     ... >
             ...
           </application>
       </manifest>
      
      <application
        android:usesCleartextTraffic="true"
      
      
      

      $usuario=$_POST[“usuario”]; $contrasena=$_POST[“contrasena”]

      mysqli_stmt_store_结果($statement); mysqli_stmt_bind_result($statement、$userID、$nombre、$email、$usuario、$contrasena)


      由于按钮没有响应,您是指按钮的大小吗?您使用的是http,这是不允许的。您应该在manifestHi中使用https或设置networkSecurityConfig,非常感谢您的回复。Android 9(foot)不允许http连接?。在任何其他版本的安卓系统中,我的应用程序都运行得很好。我不知道如何实施你告诉我的改变。但是如果我使用http,我的文件Login.php在哪里?再次感谢您的回复,我正在实现您在更新中告诉我的内容。一个巨大的雨果,它是一个充满活力的世界SHello,用你告诉我的配置更新我的应用程序,但它仍然不能在android v9(foot)上正常工作。我的问题是什么在android v9上不起作用
      $con = mysqli_connect("localhost", "xxxxx", "xxxxx", "xxxxx");
      
      $statement = mysqli_prepare($con, "SELECT * FROM usuarios WHERE usuario = ? AND contrasena = ?");
      mysqli_stmt_bind_param($statement, "ss", $usuario, $contrasena);
      mysqli_stmt_execute($statement);
      
      $response = array();
      $response["success"] = false;  
      
      while(mysqli_stmt_fetch($statement)){
          $response["success"] = true;  
          $response["nombre"] = $nombre;
          $response["email"] = $email;
          $response["usuario"] = $usuario;
          $response["contrasena"] = $contrasena;
      }
      
      echo json_encode($response);