当前位置: 首页 > 知识库问答 >
问题:

Android Api(Okhttps)在Android 9(pie)及以上版本中未被调用[重复]

岑毅庵
2023-03-14

我调用Android API在相同的方式为其他版本的手机和它的工作罚款,直到奥利奥版本,即。8.但是这个应用编程接口在Android9(即派版本及以上)中没有被调用。如果馅饼有什么变化,一定要让我知道。提前感谢。

 private void getLoginAPI(String username, String password, String compnaycoce) {

    if (NetworkStatus.isNetworkConnected(this)) {
        LoginReqBean bean = new LoginReqBean();
        bean.UserId = username;
        bean.Password = password;
        bean.Company = compnaycoce;
        NetworkService serviceCall = new NetworkService(Constants.loginPost(), Constants.TAG_POST, this);
        serviceCall.call(bean);
    } else
        Toast.makeText(this, "Please check Internet connection", Toast.LENGTH_SHORT).show();
}

@Override
public void onNetworkCallInitiated(String service) {
    progressDialog = ProgressDialog.show(LoginActivity.this, "Info", "Validating Credentials, Please wait...");
    progressDialog.show();

}

 @Override
  public void onNetworkCallCompleted(String service, String response) {
    Log.e("LOGIN JSON ", "login " + response);

    if (progressDialog != null && progressDialog.isShowing())
        progressDialog.dismiss();

    LoginParentBean parentBean = LoginParentBean.fromJson(response);

    if (parentBean != null && parentBean.status) {
        LoginBean loginBean = parentBean.result;
        Toast.makeText(getApplicationContext(), "You Are logged in Successfully!", Toast.LENGTH_LONG).show();
        AppPreferences.INSTANCE.setUserID(loginBean.user_id);
        AppPreferences.INSTANCE.setUserRole(loginBean.userRole);
        AppPreferences.INSTANCE.setUserLocation(loginBean.location);
        AppPreferences.INSTANCE.setUserLocationID(loginBean.locationId);
        AppPreferences.INSTANCE.setIsPostGres(loginBean.isPostgres);
        AppPreferences.INSTANCE.setUserName(loginBean.username);
        AppPreferences.INSTANCE.setAccessToken(loginBean.tokenValue);
        AppPreferences.INSTANCE.setLogin(true);

        Intent intent = new Intent(getApplicationContext(), DashBoardActivity.class);
        startActivity(intent);
        finish();
    } else
        Toast.makeText(getApplicationContext(), "Please check your username and password again!", Toast.LENGTH_LONG).show();


}

@Override
public void onNetworkCallError(String service, String errorMessage) {
    if (progressDialog != null && progressDialog.isShowing())
        progressDialog.dismiss();

    MessageDialog msg = new MessageDialog(LoginActivity.this);
    msg.setButtonText("Ok");
    msg.show(getResources().getString(R.string.error_somethingwent), getResources().getString(R.string.app_name));
}
}

共有2个答案

柳高卓
2023-03-14

在项目的AndroidManifest.xml文件中添加以下行

<application
    android:usesCleartextTraffic="true">
            ...
</application>
邬令
2023-03-14

Android 6.0在android清单中的应用程序元素下引入了useCleartext流量属性。Android P中的默认值为"false"。将此设置为true表示应用打算使用清除流量。

<application
    android:usesCleartextTraffic="true"

</application>

但是,这似乎可以解决问题,但会对数据完整性造成威胁。Android7.0通过网络安全配置文件提供了更好的解决方案

 类似资料:
  • 保证任务执行,即使应用程序或设备重新启动 在实现并测试了它之后,我尝试重新引导我的设备,并注意到日志消息和应用程序通知从未出现。 很自然,我做了一些研究,偶然发现:在android oreo中,设备重新启动后PeriodicWorkRequest无法工作 下面是我如何实现 我希望得到任何关于如何确保在运行API24+的设备上重新启动设备时也调用请求的帮助

  • 我想开发一个部署目标为iOS 6.0的应用程序。如果我只使用Swift,它会工作吗?还是我也需要编写Objective-C代码?

  • 自从将Android Studio更新为版本4以来,我一直无法使用WIFI ADB ULTIMATE插件。运行Android Studio时显示以下错误。 Android Studio不是一个IntelliJ创意吗? 如何在Android Studio 4及以上版本中使用此插件?这个插件非常简单有效。

  • 我正在尝试从默认的android迁移到AppCompat-22.1中包含的新的android。到目前为止,我只需要导入包就可以使用它。 但我该怎么做呢?例如,更改正/负按钮颜色、标题颜色、消息颜色和背景颜色?

  • 我正在使用JSF 2.0创建页面: 我期待在单击复选框时被调用。但是,加载页面时调用一次setMyCheckboxValue()。 如果我写 每次点击都会收到警报。 我的问题是:当我收到警报时,为什么每次onclick事件都不调用? 注意:我也尝试过AJAX,但复选框保持不变。

  • OkHttps 是近期开源的对 OkHttp3 轻量封装的框架,它独创的异步预处理器,特色的标签,灵活的上传下载进度监听与过程控制功能,在轻松解决很多问题的同时,设计上也力求纯粹与优雅。 特点 超级优雅的 API 设计,且链式调用,让你顺滑到底! BaseURL、URL 占位符、HTTP 同步 异步、WebSocket,让你想干啥就干啥! JSON、Xml 等自动封装与解析,且支持与任意格式的数据