我正在为移动 AIR 应用程序编写 native Android 扩展。我正在尝试获取设备 ID,但返回的结果始终为空。我不知道我做错了什么。这是 native 扩展代码 (java):
import android.app.Activity;
import android.provider.Settings;
import android.provider.Settings.Secure;
import android.content.Context;
import android.content.SharedPreferences;
import android.telephony.TelephonyManager;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
import com.adobe.fre.FREObject;
import com.adobe.fre.FREWrongThreadException;
public class DeviceIdGetter extends Activity implements FREFunction {
@Override
public FREObject call(FREContext context, FREObject[] passedArgs) {
FREObject result = null;
TelephonyManager tManager = (TelephonyManager)getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);
try
{
result = FREObject.newObject(tManager.getDeviceId());
}
catch (FREWrongThreadException fwte)
{
try
{
result = FREObject.newObject("error");
}
catch (FREWrongThreadException fwte2)
{
}
fwte.printStackTrace();
}
return result;
}
}
最佳答案
你用的是sdk4.6吗?
FREObject.newObject
返回错误未找到 native freobject 的实现
,这导致上下文获取 null
。
我认为您已将 FlashRuntimeExtensions.jar
文件从 sdks 文件夹复制到您的 java 项目中。
尝试将 Adobe Flash Builder 4.x\sdks\4.xx\lib\android\FlashRuntimeExtensions.jar
添加到您的 jar 路径中。
关于java - AIR native Android 扩展 - 始终返回空设备 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232859/