2012-05-22 48 views
3

我想從FREFunction開始,並在我的Flex應用程序上使用Facebook的SSO。如何從FREFunction開始活動?

我在FREFunction那樣:

@Override 
    public FREObject call(FREContext context, FREObject[] args) { 
     Intent myIntent = new Intent(context.getActivity(), FacebookSSO.class); 
     context.getActivity().startActivity(myIntent); 
     return null; 
    } 

我得到的logcat:在被FacebookSSO.java不顯示onCreate方法

I/ActivityManager(1322): Starting activity: 
Intent{ cmp=air.testapp/com.test.android.ane.activity.FacebookSSO } from pid... 

但我的日誌調用:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //setContentView(R.layout.main); 
    Log.d("FacebookSSO", "onCreate BEGIN."); 
    Log.d("FacebookSSO", "onCreate END."); 
} 

我試着以不同的方式創建myIntent,就像使用setClass一樣。 我在做什麼錯?

+0

你有想過嗎?我正在嘗試做同樣的事情。雖然,我正在運行Flash Builder,所以實際上我不知道如何獲取任何Logcat信息,因爲它似乎只連接到Flash調試器。 – Tylo

+0

沒有。試圖從頭開始,因爲這個項目做同樣的事情,它爲我工作:http://blog.immanuelnoel.com/2011/12/07/new-actionscript-native-extension-speech-recognition/ – Melladric

+0

該死的。是的,我也注意到了這個項目。我嘗試了製作SpeechHandler活動的方法,但我認爲他們這樣做是爲了開始真正的演講活動並返回結果的某種工作。 可悲的是我無法讓SpeechHandler產生我的Activity。讓我知道,如果你得到它的工作。 – Tylo

回答

0

Intent constructor您使用的是期待上下文作爲它的參數(記住,Activity語境也。)

因爲構造函數期待一個框架,並且你開始與上下文不應該有需要撥打getActivity()。另外startActivity()Context的一種方法,所以你不應該在第二行也需要getActivity()。但是,我不知道這是否會導致您看到的錯誤。

試試你的代碼是這樣的:

Intent myIntent = new Intent(context, FacebookSSO.class); 
context.startActivity(myIntent); 
+0

謝謝你的回答。但是這不起作用,因爲上下文的類型是FREContext,這意味着未定義的構造函數錯誤。是否有可能的演員陣容? – Melladric

+0

啊,對不起,我什麼都沒有。對Air平臺並不熟悉,沒有意識到它有自己的Context版本。 – FoamyGuy

1

你解決這個問題?

您是否曾嘗試將類添加到應用程序描述符中的清單添加中?

<android> 
    <manifestAdditions><![CDATA[ 
     <manifest android:installLocation="auto"> 
      <uses-permission android:name="android.permission.INTERNET"/> 
      <application> 
       <activity android:name="com.test.android.ane.activity.FacebookSSO"></activity> 
      </application> 
     </manifest> 
    ]]></manifestAdditions> 
</android>