如果模拟器/手机没有安装Facebook应用程序,它没有问题.
如果模拟器/手机安装了Facebook应用程序,Facebook应用程序加载登录屏幕,但在尝试登录后,Facebook应用程序刚刚消失,将我带回我的应用程序.
安装Facebook应用程序时有没有人有这种体验?
我的代码:
public class AchIEvementActivity extends Activity implements DialogListener,OnClickListener{private Facebook facebook;button facebookPostbutton;String defaultFacebookPost;@OverrIDepublic voID onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); requestwindowFeature(Window.FEATURE_CUSTOM_Title); setContentVIEw(R.layout.achIEvements); getwindow().setFeatureInt(Window.FEATURE_CUSTOM_Title,R.layout.custom_Title_layout); VIEw achIEvementdivIDer = (VIEw)findVIEwByID(R.ID.achIEvementdivIDer); int[] colors = {0,0xff00ffff,0}; achIEvementdivIDer.setBackgroundDrawable(new GradIEntDrawable(OrIEntation.RIGHT_left,colors)); //get the Title of the achIEvement from the intent that started this activity from the activity StatisticsActivity String achIEvementTitleString = getIntent().getStringExtra("Title"); String achIEvementTextTodisplay = getAchIEvementTextTodisplay(achIEvementTitleString); defaultFacebookPost = getDefaultPost(achIEvementTitleString); //ImageVIEw achIEvementActivityAchIEvementBadgeImageVIEw = (ImageVIEw)findVIEwByID(R.ID.achIEvementActivityAchIEvementBadgeImageVIEw); TextVIEw achIEvementActivityBadgeTitleTextVIEw = (TextVIEw)findVIEwByID(R.ID.achIEvementActivityBadgeTitleTextVIEw); achIEvementActivityBadgeTitleTextVIEw.setText(achIEvementTitleString); TextVIEw achIEvementActivityAchIEvementText = (TextVIEw)findVIEwByID(R.ID.achIEvementActivityAchIEvementText); achIEvementActivityAchIEvementText.setText(achIEvementTextTodisplay); facebookPostbutton = (button)findVIEwByID(R.ID.facebookPostbutton); facebookPostbutton.setonClickListener(this);}@OverrIDepublic voID onComplete(Bundle values) { if (values.isEmpty()) { Toast.makeText(getApplicationContext(),"Empty",Toast.LENGTH_SHORT); return; } if (!values.containsKey("post_ID")) { try { Bundle parameters = new Bundle(); parameters.putString("message",defaultFacebookPost);// the message to post to the wall facebook.dialog(AchIEvementActivity.this,"stream.publish",parameters,this);// "stream.publish" is an API call } catch (Exception e) { // Todo: handle exception System.out.println(e.getMessage()); } } try { facebook.logout(getApplicationContext()); } catch (MalformedURLException e) { // Todo auto-generated catch block e.printstacktrace(); } catch (IOException e) { // Todo auto-generated catch block e.printstacktrace(); }}@OverrIDepublic voID onFacebookError(FacebookError error) { Toast.makeText(AchIEvementActivity.this,"onFacebookError",Toast.LENGTH_LONG); }@OverrIDepublic voID onError(DialogError e) { Toast.makeText(AchIEvementActivity.this,"onError",Toast.LENGTH_LONG); }@OverrIDepublic voID onCancel() { Toast.makeText(AchIEvementActivity.this,"onCancel",Toast.LENGTH_LONG);}@OverrIDepublic voID onClick(VIEw v){ if (v == facebookPostbutton) { facebook = new Facebook("my_facebook_API"); // replace APP_API_ID with your own facebook.authorize(this,new String[] {"publish_stream","read_stream","offline_access"},this); }}private String getDefaultPost(String defaultTitleString) { //do some stuff here to get a string to post to wall return defaultPost;}private String getAchIEvementTextTodisplay(String achIEvementTitleString) { String achIEvementTextTodisplay = "DEFAulT"; //do some stuff here to get text to display in the activity //this has nothing to do with the facebook post... return achIEvementTextTodisplay;}}
Logcat告诉我这个:
05-11 13:03:34.076: INFO/ActivityManager(98): Starting activity: Intent { cmp=com.facebook.katana/.ProxyAuth (has extras) }05-11 13:03:34.246: INFO/ActivityManager(98): displayed activity com.facebook.katana/.ProxyAuth: 158 ms (total 158 ms)05-11 13:03:35.166: DEBUG/dalvikvm(12390): GC_FOR_MALLOC freed 6729 objects / 418424 bytes in 44ms05-11 13:03:35.166: DEBUG/webvIEwglue(12390): nativeDestroy vIEw: 0x527e2005-11 13:03:35.166: DEBUG/NativeCrypto(12390): Freeing OpenSSL session
编辑
:在过去一年中必须在多台机器上安装AndroID开发平台并且在创建新的开发环境后总是遇到Facebook的问题,我发现这个简单的答案可能是Facebook实现在一个设备上工作的原因不是另一个……
秘密的Facebook API密钥(您在developer.facebook.com上列出的密钥)对于您使用不同证书打包的每个版本的应用程序都会有所不同.例如,假设您有两台开发机器.由于这两台计算机都将使用不同的证书构建您的应用程序,因此您必须确保为每台计算机生成一个Facebook API密钥,并将它们列在developer.facebook.com上.
解决方法 这是因为当您登录Facebook帐户时,您的登录会话将在设备中创建.完成任务后,您必须从Facebook注销. 总结以上是内存溢出为你收集整理的android – 在设备/模拟器上安装Facebook应用程序时,发布到用户Facebook墙不能正常工作全部内容,希望文章能够帮你解决android – 在设备/模拟器上安装Facebook应用程序时,发布到用户Facebook墙不能正常工作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)