Встроенное расширение Android для AIR - всегда возвращается нулевой идентификатор устройства - PullRequest
2 голосов
/ 10 февраля 2012

Я пишу собственное расширение Android для мобильного приложения AIR. Я пытаюсь получить идентификатор устройства, но результат всегда возвращается как ноль. Я не могу понять, что я делаю неправильно. Вот собственный код расширения (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 Ответ

1 голос
/ 02 марта 2012

Вы используете SDK4.6?

FREObject.newObject возвращает ошибку no implementation found for native freobject, это вызывает контекст get null. Я думаю, что вы скопировали файл FlashRuntimeExtensions.jar из папки sdks в ваш проект Java.

Попробуйте добавить Adobe Flash Builder 4.x\sdks\4.xx\lib\android\FlashRuntimeExtensions.jar в путь к банке.

...