我使用这段代码允许用户在打开应用程序时登录到facebook。一旦用户登录,应用程序就会转到主菜单。
public class facebook_social extends Activity implements LoginListener {
private FBLoginManager fbManager;
Intent intentResult;
Bitmap bmImg = null;
URL myFileUrl =null;
ImageView i;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
intentResult = new Intent(getApplicationContext(), MainMenu.class);
//If the sdk version is Honeycomb the take off strictMode to allow for network connection in main thread.
if(Build.VERSION.SDK_INT >= 11){
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
shareFacebook();
}
public void shareFacebook() {
String permissions[] = { "read_stream", "user_relationship_details",
"user_religion_politics", "user_work_history",
"user_relationships", "user_interests", "user_likes",
"user_location", "user_hometown", "user_education_history",
"user_activities","offline_access"};
fbManager = new FBLoginManager(this,R.layout.black,"173174566087561",permissions);
if (fbManager.existsSavedFacebook()) {
fbManager.loadFacebook();
} else {
fbManager.login();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
fbManager.loginSuccess(data);
}
public void loginFail() {
fbManager.displayToast("Login failed!");
}
public void logoutSuccess() {
fbManager.displayToast("Logout success!");
}
public void loginSuccess(Facebook facebook) {
GraphApi graphApi = new GraphApi(facebook);
User user = new User();
try {
user = graphApi.getMyAccountInfo();
} catch (EasyFacebookError e) {
e.toString();
}
String pkg = getPackageName();
intentResult.putExtra(pkg + ".myName", user.getName());
intentResult.putExtra(pkg + ".myId", user.getId());
startActivity(intentResult);
Intent i = new Intent();
i.putExtra("name", user.getName());
}
}
正如你在这里看到的应用程序给出了一个黑色的背景,当在这个屏幕上允许用户登录。我想做的是,在主菜单的顶部有登录。我该怎么做呢?
将其集成到主菜单活动中?
Android是基于堆叠活动,所以这是你应该做的。您可以使用startActivityForResult来处理登录活动,并在返回一个积极的结果(=成功登录)时启用您的主活动