ile bir işleve android.content.Context parametresi gönderme Bir Bağlam parametresi gerektiren internet bağlantısını denetleyen bir yöntem oluşturmaya çalışıyorum. JNIHelper, parametrelerle statik işlevleri çağırmamı sağlar, ancak bir parametre olarak kullanmak için Cocos2d-x Activity sınıfını nasıl "geri alacağımı" bilmiyorum.JNI
public static boolean isNetworkAvailable(Context context) {
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(
Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected())
haveConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected())
haveConnectedMobile = true;
}
return haveConnectedWifi || haveConnectedMobile;
}
ve C++ kodu
JniMethodInfo methodInfo;
if (!JniHelper::getStaticMethodInfo(methodInfo,
"my/app/TestApp", "isNetworkAvailable", "(Landroid/content/Context;)Z")) {
//error
return;
}
CCLog("Method found and loaded!");
methodInfo.env->CallStaticBooleanMethod(methodInfo.classID,
methodInfo.methodID);
methodInfo.env->DeleteLocalRef(methodInfo.classID);
söyler misin: Uygulamanız sınıf ve kullanmak almak için olduğu gibi
, ben (C++ parçası olarak) şu kodu kullanırsınız? Sadece getSystemService almak için ????? –
Bu çözüm değil, isNetworkAvailable için tanımlayıcı yanlış. Olması gereken: "(Landroid/content/Context;) Z". L ve Z'yi not edin –