最近正在学习第三方的分享,看到别人很多用的友盟第三方,于是就去官网下载了SDK和相关的API开始整了。
以下是我的流程,给自己做个笔记。

二,把main文件下的libs和res里面的文件复制到你项目对应的文件里面,再把platforms/QQ精简版/libs下的文件也复制到项目的libs里面(我这里下载的QQ精简版),添加依赖

三,修改AndroidManifest.xml文件
权限:
<uses-permission android:name="android.permission.access_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />添加
//友盟的APPKEY 需要自己注册 把58b278f6f29d983ee60016e6换成你的<meta-data android:name="UMENG_APPKEY" android:value="58b278f6f29d983ee60016e6" ></meta-data>//QQActivity 需要去openqq 去注册你的APPID 把100424468换成你的 tencent不能变<activity android:name="com.umeng.qq.tencent.AuthActivity" android:launchMode="singleTask" android:noHistory="true" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="tencent100424468" /> </intent-filter></activity><activity android:name="com.umeng.qq.tencent.AssistActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden|screenSize"/>四,创建自己的applicationpublic class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); //1105933485--APPID kqfpNVOuG9oMLruW--APPKEY PlatformConfig.setQQZone("1105933485","kqfpNVOuG9oMLruW"); }}五,编写Activitypackage com.example.wuhan.youmeng;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.SharedPReferences;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.AsyncTask;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import com.umeng.socialize.UMAuthListener;import com.umeng.socialize.UMShareAPI;import com.umeng.socialize.bean.SHARE_MEDIA;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URI;import java.net.URL;import java.util.Map;import java.util.Set;public class MainActivity extends Activity implements View.OnClickListener { private ImageView img; private TextView tv; private Button btn; UMShareAPI api; private SharedPreferences sp; private String name; private String image_url; private Bitmap bitmap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init() { //创建SharedPreferences保存QQ名、头像 sp = getSharedPreferences("kk", Context.MODE_PRIVATE); img = (ImageView) findViewById(R.id.img); tv = (TextView) findViewById(R.id.tv); btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(this); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); api.get(this).onActivityResult(requestCode, resultCode, data); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn: api = UMShareAPI.get(this); SHARE_MEDIA platform = SHARE_MEDIA.QQ; api.doOauthVerify(this, platform, umAuthListener); } } private UMAuthListener umAuthListener = new UMAuthListener() { @Override public void onStart(SHARE_MEDIA share_media) { } @Override public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) { // Toast.makeText(MainActivity.this, "Authorize succeed", Toast.LENGTH_SHORT).show(); Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show(); //友盟API获得平台信息 api.getPlatformInfo(MainActivity.this, platform, new UMAuthListener() { @Override public void onError(SHARE_MEDIA arg0, int arg1, Throwable arg2) { } @Override public void onStart(SHARE_MEDIA share_media) { } @Override public void onComplete(SHARE_MEDIA arg0, int arg1, Map<String, String> data) { Set<String> set = data.keySet(); SharedPreferences.Editor edit = sp.edit(); for (String string : set) { // 获得头像图片的网络地址 if (string.equals("profile_image_url")) { image_url = data.get(string); } // 设置昵称 if (string.equals("screen_name")) { name = data.get(string); } } edit.putString("image", image_url); edit.putString("name", name); edit.commit(); tv.setText(name); new MyAsync().execute(image_url); } @Override public void onCancel(SHARE_MEDIA arg0, int arg1) { } }); } @Override public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) { } @Override public void onCancel(SHARE_MEDIA share_media, int i) { } }; class MyAsync extends AsyncTask<String,String,Bitmap>{ @Override protected Bitmap doInBackground(String... params) { try { URL url=new URL(image_url); HttpURLConnection connection= (HttpURLConnection) url.openConnection(); connection.setConnectTimeout(3000); connection.setRequestMethod("GET"); connection.setDoInput(true); connection.setUseCaches(false); if(connection.getResponseCode()==200){ InputStream inputStream=connection.getInputStream(); bitmap= BitmapFactory.decodeStream(inputStream); inputStream.close(); return bitmap; } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); img.setImageBitmap(bitmap); } }}
新闻热点
疑难解答