当前位置: 首页 > 知识库问答 >
问题:

JNI C call onCreate JAVA-Facebook

申屠项明
2023-03-14

我用C在cocos2dx上创建了一个游戏,现在我想把它和Facebook连接起来,为了实现这一点,我用JAVA做它,然后把它和JNI连接起来。这两种方法都能很好地工作,但要将其与Facebook连接起来,我需要@override the method onCreate(),但我不知道如何从C JNI调用该方法。

当我将我的Facebook代码移动到一个新函数时,我需要执行这个

Session.openActiveSession(this, true, new Session.StatusCallback() {}

但是“this”在onCreate()之外不存在。有什么想法吗?

1-. 如何登录Facebook,而不调用onCreate(){}方法

2-.如何从JNI C调用onCreate方法?

我的JNI代码:

它调用Facebook登录,并正常工作,但没有与onCreate

if(JniHelper::getStaticMethodInfo(minfo,
                                      "com/company/game/Facebook",
                                      "facebookLogin",
                                      "()V"))
    {
        jstring StringArg1 = minfo.env->NewStringUTF(msg);
        minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID);
        minfo.env->DeleteLocalRef(minfo.classID);
    }

谢谢:D

共有1个答案

殷安顺
2023-03-14

我解决了。

问题是您需要将其放在Cocos2dxactive的主Actividty上并分配onEnter act=this。其中act是Cocos2dxactive,在任何您调用它的地方,您都将放置act

代码:

 public class game extends Cocos2dxActivity{

    static Cocos2dxActivity act;


protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        System.out.println("Super init");
        act = this;
}

public static void FacebookLogin() {
        Session.openActiveSession(act, true, new Session.StatusCallback() {

            // callback when session changes state
            @Override
            public void call(final Session session2, SessionState state, Exception exception) {
                if (session2.isOpened()) {

                    Request.newMeRequest(session2, new Request.GraphUserCallback() {

                          // callback after Graph API response with user object
                          @Override
                          public void onCompleted(GraphUser user, Response response) {
                            if (user != null) {
                              Log.d("Facebook", "Hello " + user.getName() + "! Id: "+user.getId());
                              isLoggedIn(); 
                              String mail = (String)response.getGraphObject().getProperty("email");
                              if (mail == null) {
                                  mail = "null";
                              }
                              userID(user.getId(), mail, user.getName());
                              session = session2;
                            }
                          }
                    }).executeAsync();

                }
            }
          });
    }
}
 类似资料:
  • 问题内容: 在Android中,最简单的方法来获得朋友的生日?还是关系状态?使用FQL还是通过Android的Facebook API SDK进行请求? 谢谢。 问题答案: 现在,如果您打印jobject1,您将获得所有朋友的生日清单。 响应将采用JSON格式,您必须从中获取值。 authenticatedFacebook是您反对Facebook的对象。 为了进一步说明,请检查此链接 .....

  • 问题内容: Facebook API和Facebook Connect的新功能。 在Google Code上找到了Facebook Java API开源库… 我真的很高兴有一个用Java预先编写的API! 对编写服务器端Java层感兴趣,该层使用REST能够访问用户的Facebook朋友列表,他们的墙,在网络上向他们发送消息等。 下载二进制文件,不幸的是,我解压缩时没有找到任何示例或演示代码。 问

  • 问题内容: 我只想要一些确认。 我在Windows上开发 我正在尝试将Facebook集成到应用中,并且SDK文档说我需要“导出签名” 从这里:http : //developers.facebook.com/docs/guides/mobile/#android 因此它说运行此命令: 首先,我必须下载openssl:OpenSSL 现在,假设上面的命令应该转换为: 因此,您想要安装在最新的Jav

  • 问题内容: 编辑:我的问题是如何使用Facebook SDK 4.X获取电子邮件,UserId,Facebook身份验证,此刻,借助Ming Respond,我知道如何获取电子邮件,用户ID,所以我的问题是如何获取Facebook身份验证,因为Session和GraphUser刚被LoginManager和AccessToken取代,没有关于它的信息吗? 问题答案:

  • 问题内容: 我想按以下方式对数据使用量进行分类: 作为Android开发的初学者,任何人都可以帮助我解决此Android编程问题,并且目前希望开发一个移动网络监控应用。我想通过指定应用程序名称来获取数据使用情况。 谢谢。希望听到大家的声音。 问题答案: 使用http://developer.android.com/reference/android/net/TrafficStats.html#ge

  • 问题内容: 我尝试了这个:当isSessionValid getDetails直接否则else facebook.authorize,然后在onActivityResult中获取getDetails 当我的系统上安装了Facebook应用程序时,此方法工作正常。但是,如果未安装,我将获得一个Web视图以输入facebook凭据,并在logcat中显示登录成功,但是没有调用getDetails块。

  • 问题内容: 继这在我的Android应用程序和测试我使用Facebook的SDK我已经添加下面的代码到我的MainActivity: 并且我在清单中添加了以下步骤: 当我测试shareDialog时,它突然关闭了。 问题答案: 您需要将您的应用设置为“公开”。 转到应用设置中的“状态和评论”部分,然后打开选项“您是否要使该应用及其所有实时功能向公众开放?”

  • 问题内容: 当我尝试编译我的应用程序时,出现以下错误 如果我摆脱了Facebook Android SDK,它可以毫无问题地进行编译。 我的build.gradle: 问题答案: 首先,您应该尝试使用 Check 列出您的依赖项,检查是否存在库冲突(相同的库,但版本不同)。在这种情况下,我认为您应该从Facebook SDK中排除支持库模块。