QQ第三方友盟分享

来源:互联网 发布:linux 创建进程 编辑:程序博客网 时间:2024/05/17 22:48

qq第三方登录,是通过友盟实现的,首先,就是下载SDK




下载完成,就是解压文件,之后在里面通过友盟的集成工具进行解析,我这只解析了qq的,如果有需要各位可以自行解析




之后,就是将里面libs包中的导入工程



然后是res文件夹下面你的内容,还是只要将整个里面你的文件夹全部复制就可以了。







随后,就是复制进去签名文件debug.keystore,放在app包下面,和java,res平级


这样一来,所有需要导入的文件就都导入完毕,接下来就开始写代码就可以了。



先是权限,和qq登录的几乎差不多。

<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" />

随后是导入的activity和meta-data

<activity    android:name="com.tencent.tauth.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.tencent.connect.common.AssistActivity"    android:screenOrientation="portrait"    android:theme="@android:style/Theme.Translucent.NoTitleBar"    android:configChanges="orientation|keyboardHidden|screenSize"/><meta-data    android:name="UMENG_APPKEY"    android:value="561cae6ae0f55abd990035bf" ></meta-data>


之后就是写一个App类,用来作为全局

public class App extends Application {    private UMShareAPI umShareAPI;    {        PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3");        PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");        PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad", "http://sns.whalecloud.com");    }    @Override    public void onCreate() {        super.onCreate();        umShareAPI = UMShareAPI.get(this);    }    public UMShareAPI getUmShareAPI() {        return umShareAPI;    }

然后就是布局,只需要一个按钮就可以了,点击事件里执行分享



之后,就是依赖中的了


buildTypes {    release {        minifyEnabled false        signingConfig signingConfigs.debug   //添加的        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'    }    debug {//添加的        minifyEnabled false        signingConfig signingConfigs.debug        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'    }}signingConfigs {//添加的    debug {        storeFile file('debug.keystore')        storePassword "android"        keyAlias "androiddebugkey"        keyPassword "android"    }}


最后,就是activity中的:

public class MainActivity extends AppCompatActivity {    private Button fenxiang;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        fenxiang = (Button) findViewById(R.id.fenxiang);        fenxiang.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                UMWeb web = new UMWeb("http://dev.umeng.com/social/android/quick-integration#2");                web.setTitle("This is music title");//标题                web.setDescription("my description");//描述                new ShareAction(MainActivity.this)                        .withMedia(web)                        .setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)                        .setCallback(shareListener)                        .open();            }        });    }    private UMShareListener shareListener = new UMShareListener() {        /**         * @descrption 分享开始的回调         * @param platform 平台类型         */        @Override        public void onStart(SHARE_MEDIA platform) {        }        /**         * @descrption 分享成功的回调         * @param platform 平台类型         */        @Override        public void onResult(SHARE_MEDIA platform) {            Toast.makeText(MainActivity.this,"成功了",Toast.LENGTH_LONG).show();        }        /**         * @descrption 分享失败的回调         * @param platform 平台类型         * @param t 错误原因         */        @Override        public void onError(SHARE_MEDIA platform, Throwable t) {            Toast.makeText(MainActivity.this,"失败"+t.getMessage(),Toast.LENGTH_LONG).show();        }        /**         * @descrption 分享取消的回调         * @param platform 平台类型         */        @Override        public void onCancel(SHARE_MEDIA platform) {            Toast.makeText(MainActivity.this,"取消了",Toast.LENGTH_LONG).show();        }    };    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);    }}