2012-05-22 4 views
3

J'essaie de démarrer et d'utiliser une fonction FREF pour utiliser le SSO de facebook sur mon application flexible.Comment démarrer une activité depuis FREFunction?

Je l'ai fait dans mon FREFunction:

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

Je reçois avec logcat:

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

Mais mes appels journaux dans la méthode de onCreate sont FacebookSSO.java ne sont pas affichés:

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

J'ai essayé de créer myIntent de différentes manières, comme utiliser setClass. Qu'est-ce que je fais de mal?

+0

Avez-vous pensé à cela par hasard? J'essaie de faire exactement la même chose. Cependant, je cours à travers Flash Builder, donc je ne sais pas comment obtenir des informations Logcat car il semble se connecter à un débogueur Flash seulement. – Tylo

+0

Non. Essayer de le faire à partir de zéro parce que ce projet fait la même chose et cela a fonctionné pour moi: http://blog.immanuelnoel.com/2011/12/07/new-actionscript-native-extension-speech-recognition/ – Melladric

+0

Merde. Oui j'ai remarqué ce projet aussi. J'ai essayé leur méthode de faire une activité SpeechHandler, mais je pense qu'ils ont fait cela comme une sorte de travail pour démarrer la vraie activité de la parole avec un résultat de retour. Malheureusement, je n'ai pas pu obtenir le SpeechHandler pour générer mon activité non plus. Faites-moi savoir si vous le faites fonctionner. – Tylo

Répondre

0

Le Intent constructor vous utilisez attend un contexte comme paramètre (rappelons que Activityest un contexte également.)

Parce que le constructeur attend un contexte et vous commencez avec un contexte, il ne devrait pas être besoin d'appeler getActivity(). Aussi startActivity() est une méthode de Context, Donc vous ne devriez pas avoir besoin de getActivity() dans la deuxième ligne non plus. Cependant, je ne sais pas si cela entraînerait l'erreur que vous voyez.

Essayez votre code de cette façon:

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

Merci pour la réponse. Mais cela ne fonctionnera pas car le contexte est de type FREContext ce qui signifie une erreur de constructeur non définie. Est-ce que n'importe quel type de distribution est possible? – Melladric

+0

Ahh, désolé je n'ai rien alors. Je ne suis pas familier avec la plate-forme Air, je ne savais pas qu'il avait sa propre version de Context. – FoamyGuy

1

Avez-vous résoudre ce problème?

Avez-vous essayé d'ajouter la classe dans les add-manifest dans votre descripteur d'application?

<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> 
Questions connexes