Per prima cosa è necessario chiamare GraphRequest API per ottenere tutti i dettagli dell'utente in cui l'API fornisce anche l'URL dell'immagine del profilo corrente.
Bundle params = new Bundle();
params.putString("fields", "id,email,gender,cover,picture.type(large)");
new GraphRequest(AccessToken.getCurrentAccessToken(), "me", params, HttpMethod.GET,
new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
if (response != null) {
try {
JSONObject data = response.getJSONObject();
if (data.has("picture")) {
String profilePicUrl = data.getJSONObject("picture").getJSONObject("data").getString("url");
Bitmap profilePic= BitmapFactory.decodeStream(profilePicUrl .openConnection().getInputStream());
mImageView.setBitmap(profilePic);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}).executeAsync();
Questo genera errori per me perché decodeStream cerca un URL invece di una stringa - Sto facendo qualcosa di sbagliato? – ntgCleaner
hanno provi BitmapFactory.decodeStream (url.op . EnConnection() getInputStream()); ?? – Rajesh
Ho usato il tuo testo esatto, posto 'getFacebookProfilePicture()' al di fuori di onCreate e mostra '.openConnection()' come non risolto. Non sono sicuro di cosa sto facendo male – ntgCleaner