没有网络的In-App-Billing v3

Har*_*tok 4 android in-app-billing google-play

In-App-Billing v3在我的Android App及其Helpers中实现.

当没有网络时,我在开始购买后就被困在一个丑陋的灰色屏幕上.

有没有办法在我们的应用程序中处理这个?

目前,当我没有从商店收到SKU详细信息时,我会在启动时禁用购买.但是,启动后连接可能会发生变化.我还没有办法知道Google Play服务是否可用.

谢谢你的帮助!

在此输入图像描述

类似的问题:在超时后,应用内结算V3会返回哪些响应代码?

Har*_*tok 7

新的Google Play应用v4.0.25现在可以正确处理:

GPlay IAP:没有连接


Ben*_*ein 5

与NIkolay建议的一样,解决方法可能是在启动请求之前检查连接性.

如果你想尝试一下,这里有一段可以帮助你的代码;

  1. 首先,您需要为AndroidManifest.xml文件添加一些权限; 特别是android.permission.ACCESS_NETWORK_STATEandroid.permission.ACCESS_WIFI_STATE.

    ACCESS_NETWORK_STATE需要用于访问ConnectivityManager(用于一般网络连接)和ACCESS_WIFI_STATE允许访问WifiManager(用于管理Wi-Fi连接).

    <!-- Needed for Reachability testing / wifi vs 3g uploading -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
    Run Code Online (Sandbox Code Playgroud)
  2. 其次,查看此方法以确定网络状态

    public static boolean isNetworkAvailable(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (null == netInfo || !netInfo.isConnected()) {
            return false;
        }
        return true;
    }
    
    Run Code Online (Sandbox Code Playgroud)