使用友盟第三方 http://dev.umeng.com/social/android/quick-integration下载SDK
下载QQ精简版

将下载下来的main文件夹以及platform(选择你想使用的平台即可)文件下,对应的资源文件和jar放入你的工程

添加权限:

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

使用platform/QQ精简版下的jar和res即可 精简版需要在AndroidManifest中配置的如下:

放在Activity下

<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>
<meta-data
    android:name="UMENG_APPKEY"
    android:value="58c63564bbea8335dc001770" >
</meta-data>

修改build.gradle文件

添加:

signingConfigs {debug {storeFile file('debug.keystore')storePassword "android"
        keyAlias "androiddebugkey"
        keyPassword "android"
    }
}

写一个MyApp的类

public class MyApp extends Application {@Override
    public void onCreate() {super.onCreate();
        UMShareAPI.get(this);
        ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(getApplicationContext()).memoryCacheExtraOptions(480,800).build();
        ImageLoader.getInstance().init(configuration);
    }{PlatformConfig.setQQZone("1106036236", "mjFCi0oxXZKZEWJs");
    }
}

在 AndroidManifest.xml文件里的Activity中配置

android:name="app.MyApp"

MainActivity

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.shareboard.SnsPlatform;

import java.util.ArrayList;
import java.util.Map;

public class MainActivity extends AppCompatActivity {private Button button;
    public ArrayList<SnsPlatform> platforms = new ArrayList<SnsPlatform>();
    private SHARE_MEDIA[] list = {SHARE_MEDIA.QQ};
    private Button button1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.but);
        button1 = (Button) findViewById(R.id.but_fenxiang);
        initPlatforms();
        //QQ好友
        final boolean isauth = UMShareAPI.get(this).isAuthorize(this, platforms.get(0).mPlatform);
        //点击分享
        button1.setOnClickListener(new View.OnClickListener() {@Override
            public void onClick(View v) {//四个分享 查看链接  http://dev.umeng.com/social/android/share-detail#4_1
                UMImage image = new UMImage(MainActivity.this, "https://timgsa.baidu.com/timg?image&quality" +"=80&size=b9999_10000&sec=1489994233&di=c5b3c72b34e883b2826c390bb7ad6c81&imgtype=jpg&e" +"r=1&src=http%3A%2F%2Fb.hiphotos.baidu.com%2Fzhidao%2Fpic%2Fit" +"em%2F63d9f2d3572c11df28e42e30602762d0f703c2e8.jpg");//网络图片
                //分享QQ好友(QQ空间  SHARE_MEDIA.QZONE)
                new ShareAction(MainActivity.this).setPlatform(SHARE_MEDIA.QQ).withText("hello").withMedia(image).setCallback(umShareListener).share();
            }});
        //点击登录
        button.setOnClickListener(new View.OnClickListener() {@Override
            public void onClick(View v) {if (isauth) {//授权登录
                    UMShareAPI.get(MainActivity.this).deleteOauth(MainActivity.this, platforms.get(0).mPlatform, authListener);
                } else {//点击登录
//                    UMShareAPI.get(MainActivity.this).doOauthVerify(MainActivity.this, platforms.get(0).mPlatform, authListener);
                    //获取信息
                    UMShareAPI.get(MainActivity.this).getPlatformInfo(MainActivity.this, platforms.get(0).mPlatform, authListener);
                }}});

    }private void initPlatforms() {for (SHARE_MEDIA e : list) {if (!e.toString().equals(SHARE_MEDIA.GENERIC.toString())) {platforms.add(e.toSnsPlatform());
            }}}UMAuthListener authListener = new UMAuthListener() {@Override
        public void onStart(SHARE_MEDIA platform) {//SocializeUtils.safeShowDialog(dialog);
        }@Override
        public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {Toast.makeText(MainActivity.this, "成功了", Toast.LENGTH_LONG).show();
            String profile_image_url = data.get("profile_image_url");
            String name = data.get("name");
            Toast.makeText(MainActivity.this, name, Toast.LENGTH_LONG).show();
            Toast.makeText(MainActivity.this, profile_image_url, Toast.LENGTH_LONG).show();
        }@Override
        public void onError(SHARE_MEDIA platform, int action, Throwable t) {Toast.makeText(MainActivity.this, "失败:", Toast.LENGTH_SHORT).show();
        }@Override
        public void onCancel(SHARE_MEDIA platform, int action) {Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_LONG).show();
        }};


    //分享方法
    private UMShareListener umShareListener = new UMShareListener() {@Override
        public void onStart(SHARE_MEDIA platform) {//分享开始的回调
        }@Override
        public void onResult(SHARE_MEDIA platform) {Log.d("plat","platform"+platform);

            Toast.makeText(MainActivity.this, platform + " 分享成功啦", Toast.LENGTH_SHORT).show();

        }@Override
        public void onError(SHARE_MEDIA platform, Throwable t) {Toast.makeText(MainActivity.this,platform + " 分享失败啦", Toast.LENGTH_SHORT).show();
            if(t!=null){Log.d("throw","throw:"+t.getMessage());
            }}@Override
        public void onCancel(SHARE_MEDIA platform) {Toast.makeText(MainActivity.this,platform + " 分享取消了", Toast.LENGTH_SHORT).show();
        }};
    //此方法只能放在Activity里 fragment可以放在依赖的Activity里
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);
        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
    }
}

QQ登录和分享(精简版)相关推荐

  1. android QQ登录与分享

    android QQ登录与分享 android QQ登录与分享是我们一个很常见的功能,除了微信登录.QQ登录.还有微博登录,外加上分享,今天就分享一下android的QQ分享与登录,我这里H5开发的和 ...

  2. android qq第三方登录,Android调用第三方QQ登录代码分享

    本文为大家分享了调用QQ登录的相关代码,希望对大家有帮助,减少项目开发的时间,具体内容如下 1.去QQ开放平台注册帐号(http://open.qq.com/),为应用申请QQ的APP_ID , 并下 ...

  3. 关于Android如何集成QQ登录及分享

    首先去友盟进行下载压缩包 然后使用友盟集成工具 将umeng_integratetool_result里的东西拷贝到工程中 新建一个app继承Application,去清单文件里面注册 在oncrea ...

  4. 第三方QQ登录和分享

    首先导入第三方的jar包 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/&g ...

  5. 制作QQ登录界面(UI版)

    工具:Android Studio activity_main.xml <?xml version="1.0" encoding="utf-8"?> ...

  6. android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法

    这里介绍微信和新浪登录.微信登录和新浪登录都需要申请第三方账号.可以参考官方文档http://dev.umeng.com/social/android/operation#2还是很清晰的. 新浪微博开 ...

  7. qq登录网站与APP用户信息互通

    1. qq登录的网站用户和APP用户如何互通? (QQ互联.开放平台网站上的文档,是不会告诉你的) 通过问qq客服,得到如下答案: 我: 你好.我现在有APP接入了qq登录.我们的网站也想接入,但是申 ...

  8. 安卓应用使用QQ登录的申请流程

    转自:http://www.apkbus.com/android-82799-1-1.html "QQ互联"是腾讯为第三方网站.媒体.终端提供的开放平台.QQ互联拥有8个组件,提供 ...

  9. 友盟第三方登录精简版QQ遇到的坑

    这几天在项目中集成了友盟第三方登录,完成以后微信和微博基本都没什么问题,只有QQ遇到的问题比较烦人.具体的集成步骤我不在此赘述,官方文档上有,而且已经有不少介绍的很详细的文章.个人遇到问题可能不同,此 ...

  10. Android友盟集成QQ、微信、微博等第三方登录与分享

    前言 最近项目需要加入第三方分享和登录功能,之前其他项目的第三方分享和登录一直都使用ShareSDK实现的.为了统一使用友盟的全家桶,所以三方分享和登录也就选择了友盟.这里记录一下完整的集成与使用流程 ...

最新文章

  1. aapt: error while loading shared libraries: libstdc++.so.6: wrong ELF class: ELFCLASS64
  2. 查WiFi密码的三种方法
  3. 01-spring配置详解
  4. 关于background-*的一些属性
  5. 2017将转行进行到底
  6. 查询2021高考成绩位次,云南一分一段表查询2021-云南高考位次查询(文科、理科)...
  7. java数据库打包_java程序需要连接数据库 如何打包
  8. SQL Server2008 错误源:.net SqlClient data provider的解决方法
  9. iOS底层探索之多线程(十五)—@synchronized源码分析
  10. 肌酸怎么吃效果最好?为什么使用肌酸没有效果!
  11. 使用 JQuery EasyUI
  12. VS2017超有用秘钥(亲测)
  13. Centos7自动备份数据库
  14. 复合型网络拓扑结构图_网络拓扑结构图知识
  15. chcp 437>nul graftabl 936>nul
  16. python读取.ttf字体文件
  17. 人工智能区块链智能合约_通过业务规则使您的区块链智能合约更智能
  18. 计算机动画相关论文,计算机动画论文.doc
  19. 计算机内存与外存的区别及使用配合(内存外存区别与搭配;快速缓存;计算机总线结构;计算机程序内存分布(栈、堆、全局/静态、数据区、代码段))
  20. windows html封装,怎样win7自带的sysprep封装系统

热门文章

  1. onenote打开闪退平板_win10系统下OneNote打不开或闪退怎么解决
  2. C/C++编辑器Source Insight技巧收集
  3. redis获取哈希类型的值,hget、hmget、hgetall
  4. kero control 防火墙
  5. 微型计算机系统的五大组成部分,计算机系统的组成计算机硬件的五大部分是什么...
  6. 学位论文参考文献格式
  7. ​​​​​​​Carryon 数数字
  8. html查看蛋白质,若干常用蛋白质结构与位点分析网站
  9. Ps 2021教程,如何更换证件照背景?
  10. openpyxl 向excel插入超链接