android - 如何在 android 中获取 Facebook 个人资料图片?

标签 android facebook facebook-graph-api sdk

img_url = new URL("http://graph.facebook.com/" + user.getId() + "/picture?type=large");
                            InputStream is = img_url.openConnection().getInputStream();
                            Bitmap avatar;
                            avatar = BitmapFactory.decodeStream(is);
                            ivAvatar.setImageBitmap(avatar);

当我获取 facebook 个人资料图片时,发生以下错误。

android.os.NetworkOnMainThreadException

如何解决?

最佳答案

您的问题的编辑(删除)部分(供引用)

您缺少 http://http://graph.facebook.com/100001119045663/picture?type=large 中的第二个/。

 java.net.UnknownHostException: http:/graph.facebook.com/100001119045663/picture?type=large

java.net.UnkownHostException 描述它无法访问 URL,可能是连接问题或格式错误/无效的 URL。

第二部分-问题添加 NetworkOnMainThread 非常具有描述性。如果您从 onCreate、onResume 等调用函数,那么您就是在 UI 线程上执行代码。这意味着如果您正在处理代码,则可以卡住 UI。您将需要创建一个单独的任务或线程。有关我所说的更多信息以及如何实现解决方案,请参阅 http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html

TLDR 版本...

package de.vogella.android.asynctask;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import de.vogella.android.asyntask.R;

 import android.app.Activity;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.TextView;

public class ReadWebpageAsyncTask extends Activity {
      private TextView textView;

   @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    HTTPExample task = new HTTPExample ();
    task.execute(new String[] { "http://pictureurl.com/image.jpg" });
  }

  private class HTTPExample extends AsyncTask<String, Void, String> {
         @Override
        protected String doInBackground(String... urls) {
        //urls is an array not a string, so iterate through urls.
        //Get Picture Here - BUT DONT UPDATE UI, Return a reference of the object
        return response;
        }

         @Override
         protected void onPostExecute(String result) {
         //Update UI
         Log.i("Result", result);
       }
   }


} 

关于android - 如何在 android 中获取 Facebook 个人资料图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21104903/

相关文章:

javascript - 如何在 EditText 中显示当前 url - android studio

java - ArrayAdapter 未更新

php - 喜欢另一个页面/URL 的 Facebook "like"按钮

php - FB Graph API 查询在 PHP SDK 中不起作用

通过 iPhone 应用程序点赞 Facebook 二维码

android - 为什么我不能从 Android 上的串行端口打开/写入?

android - 果冻 bean 上TextView的requestFocus慢

c# - Facebook 图形 API : delete notification

ios - 如何将 facebook token 安全地扔到自己的服务器上?

php - 使用 webhook 获取 Facebook 线索广告的表单名称