AIR原生Android扩展 - 始终返回null设备ID

时间:2012-02-10 18:30:46

标签: java android air-native-extension

我正在为移动AIR应用程序编写原生Android扩展程序。我试图获取设备ID,但结果总是返回null。我无法弄清楚我做错了什么。这是本机扩展代码(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;
    }
}

1 个答案:

答案 0 :(得分:1)

您使用的是sdk4.6吗?

FREObject.newObject会返回错误no implementation found for native freobject,这会导致上下文获取null。 我认为您已将sdks文件夹中的FlashRuntimeExtensions.jar文件复制到您的java项目中。

尝试将Adobe Flash Builder 4.x\sdks\4.xx\lib\android\FlashRuntimeExtensions.jar添加到您的jar路径中。