我想在界面的帮助下在我的项目中使用 native Android 代码。
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();
}
如何获取核心项目中的精确整数值?
最佳答案
通过执行以下操作可以解决此问题:
将您的平台特定代码放入实现您的接口(interface)的类中,并让您的 Game 类接受该接口(interface)作为其构造函数中的参数。
因此,在您的核心项目中,您有 Game 类;
public class GameInstance extends Game {
private NetworkState networkState;
public GameInstance(NetworkState networkState) {
this.networkState = networkState;
}
// override methods go below
...
}
此外,您将 NetworkState 接口(interface)放入核心中:
public interface NetworkState {
public int getNetworkState();
}
在您的Android项目中放置实现;
public AndroidNetworkState implements NetworkState {
public int getNetworkState() {
return 1;
}
}
然后在 AndroidLauncher 中创建一个 Game 对象并向其传递接口(interface)实现:
@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);
}
然后你就可以在核心项目中调用接口(interface)方法了:
...
int networkStateResult = this.networkState.getNetworkState();
...
如果您支持其他平台,请务必提供其他平台的实现。
关于interface - 用于原生 Android 代码的 libGDX 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29802219/