libGDX 本机 android 代码的接口

libGDX interfaces for native android code

我想借助接口在我的项目中使用本机 android 代码。

安卓启动器:

public int getNetworkState() {
    int a;

    ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    if (mWifi.isConnected()) {
        a=1;
    } else {
        a=0;
    }

    return a;
}

核心:

public interface NetworkState {
    public int getNetworkState();

}

如何在核心项目中获取准确的整数值?

这可以通过执行以下操作解决:

将您的平台特定代码放在实现您的界面的 class 中,并让您的游戏 class 在其构造函数中接受该界面作为参数。

所以在您的 核心项目 中,您有自己的游戏 class;

public class GameInstance extends Game {
    private NetworkState networkState;

    public GameInstance(NetworkState networkState) {
        this.networkState = networkState;
    }

    // override methods go below
    ...
}

此外,您将 NetworkState 接口放在核心中:

public interface NetworkState {
    public int getNetworkState();    
}

在您的 Android 项目中 您放置了实施;

public AndroidNetworkState implements NetworkState {
    public int getNetworkState() {
        return 1;
    }
}

然后在 AndroidLauncher 中创建一个 Game 对象并将接口实现传递给它:

@Override
protected void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
    NetworkState networkState = new AndroidNetworkState(); // or whatever you called the class
    initialize(new Game(networkState), config);
}

然后在你的核心项目中直接调用接口方法就可以了:

...
int networkStateResult = this.networkState.getNetworkState();
...

如果您支持其他平台,请务必提供其他平台的实现。