2012-02-10 5 views
2

모바일 AIR 응용 프로그램에 기본 Android 확장을 쓰고 있습니다. 장치 ID를 얻으려고하지만 결과가 항상 null로 되돌아옵니다. 내가 뭘 잘못하고 있는지 알 수 없다. 다음은 기본 확장 코드 (java)입니다.AIR 기본 Android 확장 - 항상 null 장치 ID를 반환합니다.

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

아니요, HTC Evo를 사용하고 있습니다. – Seth

+0

혹시 해결책을 찾았습니까? – brybam

답변

1

sdk4.6을 사용하고 있습니까?

FREObject.newObject은 오류 no implementation found for native freobject을 반환하며이 컨텍스트는 null입니다. FlashRuntimeExtensions.jar 파일을 sdks 폴더에서 Java 프로젝트로 복사했다고 생각합니다.

Adobe Flash Builder 4.x\sdks\4.xx\lib\android\FlashRuntimeExtensions.jar을 jar 경로에 추가하십시오.

+0

4.6sdk를 사용하고 있으며 언급 한 파일을 사용 중입니다. 감사합니다. – Seth

+0

똑같은 문제가 있습니다. 내가 찾은 모든 자습서는 몇 달 전에 저에게 도움이되었습니다 만, 이제는 새로운 SDK와 모든 컨텍스트에서 null 오류가 계속 발생합니다. 이 답변에서 알 수 있듯이, 나는 항상 외부 항아리 경로를 사용했고, 여전히 null 오류가 발생했습니다. 흥미로운 점은 필자가 과거에 이것을했을 때와 똑같은 라이브러리 프로젝트를 문자 그대로 사용하고 있으며 여전히 오류가 발생하고 있다는 것입니다. 누구도 이것에 대한 해결책을 찾지 못했습니까 ?? – brybam

관련 문제