最近正在学习第三方的分享,看到别人很多用的友盟第三方,于是就去官网下载了SDK和相关的API开始整了。
以下是我的流程,给自己做个笔记。
第一步:注册自己的应用 拿到友盟APPKEY,应用名=你项目的包名下载好友盟分享SDK http://mobile.umeng.com/social 然后解压出来
二,把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"/>
四,创建自己的application
public 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); } } }
本文详细介绍如何将友盟分享SDK集成到Android项目中。包括注册应用获取APPKEY、下载并配置SDK、添加必要的权限及元数据、创建自定义Application类、实现授权验证等步骤。
1万+

被折叠的 条评论
为什么被折叠?



