Android 无法使用graph api Facebook sdk 4.0获取配置文件pic
我无法使用获取图像Android 无法使用graph api Facebook sdk 4.0获取配置文件pic,android,facebook,Android,Facebook,我无法使用获取图像 Bitmap bitmap = getBitmapFromURL("https://graph.facebook.com/100001220051873/picture"); if(bitmap!=null) imageView.setImageBitmap(bitmap); else Toast.makeText(getActivity(),"null it is",T
Bitmap bitmap = getBitmapFromURL("https://graph.facebook.com/100001220051873/picture");
if(bitmap!=null)
imageView.setImageBitmap(bitmap);
else
Toast.makeText(getActivity(),"null it is",Toast.LENGTH_SHORT).show();
getBitmapFromURL所在的位置
public static Bitmap getBitmapFromURL(String src) {
try {
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
但是,当我使用下面的一切都很好
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
但我在那里读到,这个策略使用起来不安全,不仅如此,它还阻塞了我的主UI几秒钟
首先,我想知道,为什么我在没有使用上述策略的情况下无法获取facebook个人资料图片,是否有任何方法可以避免上述策略,并可能获取我的个人资料图片?提前感谢:)以下是工作代码:
GraphRequest request = GraphRequest.newMeRequest(
accessToken,
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
// Application code
Log.d("response","response"+object.toString());
Intent intent=new Intent(MainActivity.this, ProfilePictureActivity.class);
try {
intent.putExtra("pic_url",object.getJSONObject("picture").getJSONObject("data").getString("url"));
startActivity(intent);
finish();
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,gender,birthday,picture.width(300)");
request.setParameters(parameters);
request.executeAsync();
以下是工作代码:
GraphRequest request = GraphRequest.newMeRequest(
accessToken,
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
// Application code
Log.d("response","response"+object.toString());
Intent intent=new Intent(MainActivity.this, ProfilePictureActivity.class);
try {
intent.putExtra("pic_url",object.getJSONObject("picture").getJSONObject("data").getString("url"));
startActivity(intent);
finish();
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,gender,birthday,picture.width(300)");
request.setParameters(parameters);
request.executeAsync();