位置值为空在Android的Facebook的API
我想做一个简单的应用程序,我唯一想要检索的是我的当前位置的坐标,使用Facebook用户的数据。 我按照本指南开始使用这样的: https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/位置值为空在Android的Facebook的API
唯一的区别就是我取代
user.getName();
与
user.getLocation().getLatitude(); //it's always null and so throws exception.
然后我尝试过其他方法,如getCountry()或getState();该值始终为空。
任何人都知道如何解决这个问题,并使用这些方法获取位置值?谢谢。
这里是我的代码部分:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// start Facebook Login
Session.openActiveSession(this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
// make request to the /me API
Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
TextView txt = (TextView) findViewById(R.id.text);
txt.setText("Latitude is: " + user.getLocation().getLatitude());
}
}
});
}
}
});
}
编辑:其自带的Facebook SDK中的hackbook项目样本中,我看到,有可能获得通过的位置ID坐标(经度和纬度),任何人知道如何?
好吧,我想我终于有了答案:摆脱ID坐标我用这个查询:
http://graph.facebook.com/ID
然后就分析结果得到的坐标(纠正我,如果有一个更简单的方法,请) 其中ID是容易gettable:
user.getLocation();
通过我第一次尝试的方式,我仍然不知道为什么返回的值是零,也许我的解决方法的结果不准确,我想,但我意识到Facebook没有注册一个如此准确的位置当某人张贴某件东西到他的墙上时,而只是帖子来自的城市坐标。 (再次,纠正我,如果我错了请)。
谢谢。
你必须使用的getProperty方法 - 一个例子来获取城市&国 -
user.getLocation().getProperty("name");
检查link,它说 - GraphUser提供所界定的用户的一个强类型的表示Graph API。请注意,此接口旨在与GraphObject.Factory一起使用,而不是直接执行。
这个link有一些例子,这会让事情更清楚。
我举这个从这里 - 一些在这个响应数据的可访问的GraphUser接口的属性作为强类型属性 - 例如:名和生日。其它性能可以通过使用的getProperty()方法并选择所需的键访问 - 例如:区域设置和语言。此步骤向您显示如何访问用户的姓名,生日,语言,位置和区域设置。
感谢它帮助 – 2014-03-12 12:21:33
getLocation()方法仅返回用户的当前城市。
那么,准确性是一个隐私问题,我认为。对我来说,让我的朋友知道我在城市XY时发布了这些信息是可以的 - 但是我希望他们知道我现在站在前面的性商店的确切地址?也许宁可不... – CBroe 2013-03-12 10:27:54
大声笑我认为你是对的,谢谢你的答案。 – c0rtexx 2013-03-12 20:32:21
我正在尝试这个,但它只给城市,国家不能给国 – SAndroidD 2014-05-02 12:26:23