第三方分享和登录授权

分享

在Manifest中添加权限
 <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" />

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

application里面写一下代码,value要改

qq精简版:

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

添加友盟appkey (也在manifest里面的<application  里面配置</application> )
    <meta-data
            android:name="UMENG_APPKEY"
            android:value="5a1f9ad1b27b0a648b000318" >
    </meta-data>

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

创建一个类 APP  继承 Application{
    //底下的放置里面  微信的 QQ的  
    {
        PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3");
        PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
        PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad", "http://sns.whalecloud.com");
    }

 //对sdk进行初始化  开启DEBUG模式

    @Override
    public void onCreate() {
        super.onCreate();
        UMShareAPI.get(this);
  //导包导import com.umeng.socialize.Config;
        Config.DEBUG = true;
    }
}

然后再<application 中  一定要最顶部/第一行添加 你创建那个类的名称 android:name=".类名"

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

在点击事件中 设置分享带面板或不带面板 和 下面的 UMImage image = new UMImage(this, R.mipmap.pigu);  选择本地文件

 分享

(带面板)


new ShareAction(MainActivity.this)
    .withText("hello")  
    .withMedia(image) 
    .setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)
    .setCallback(new UMShareListener)
    .open();

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

关于分享面板的更多功能可以参照分享面板进阶。

   分享

(不带面板)

new ShareAction(MainActivity.this)
.setPlatform(SHARE_MEDIA.QQ)//传入平台
.withText("hello")//分享内容
.setCallback(new UMShareListener )//回调监听器
.share();

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

在Activity中添加

if (Build.VERSION.SDK_INT >= 23) {
            String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CALL_PHONE, Manifest.permission.READ_LOGS, Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.SET_DEBUG_APP, Manifest.permission.SYSTEM_ALERT_WINDOW, Manifest.permission.GET_ACCOUNTS, Manifest.permission.WRITE_APN_SETTINGS};
            ActivityCompat.requestPermissions(this, mPermissionList, 123);
        }

      在Oncreate方法外边写这个方法

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
    }

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

登录

UMShareAPI umShareAPI=UMShareAPI.get(this);
                umShareAPI.getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, new UMAuthListener() {
                    @Override
                    public void onStart(SHARE_MEDIA share_media) {

                    }

                    @Override
                    public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
                        tv.setText(map.get("name"));
                        Picasso.with(MainActivity.this).load(map.get("iconurl")).into(img);
                    }

                    @Override
                    public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {

                    }

                    @Override
                    public void onCancel(SHARE_MEDIA share_media, int i) {

                    }
                });

监听外边写这个方法


@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);

    }

猜你喜欢

转载自my.oschina.net/u/3730650/blog/1608842