• 基于最新友盟开发文档,集成友盟分享功能,赋demo


    集成准备

    获取Appkey

    快速集成

    获取SDK,页面截图:


    下载后打开

    导入jar和res

    添加回调Activity

    微信
    在包名目录下创建wxapi文件夹,新建一个名为WXEntryActivity的activity继承WXCallbackActivity。

    QQ
    QQ不需要添加Activity,但需要在使用QQ分享或者授权的Activity中,添加:

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

    配置Android Manifest XML

    sdk中需要的Activity
    微信

     <activity
                android:name=".wxapi.WXEntryActivity"
                android:configChanges="keyboardHidden|orientation|screenSize"
                android:exported="true"
                android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    

    qq(请注意将我们的qq appkey替换成您自己的qq appkey):

         <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:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:configChanges="orientation|keyboardHidden|screenSize"/>
    

    权限添加

    请在AndroidManifest中添加如下权限

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    

    如果需要使用QQ纯图分享或避免其它平台纯图分享的时候图片不被压缩,可以增加以下权限:

      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>   
       <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    

    Android6.0权限适配

    请查看你的build.gradle文件,如果 targetSdkVersion小于或等于22,可以忽略这一步,如果大于或等于23,需要做权限的动态申请:

    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);
                  }
    

    其中123是requestcode,可以根据这个code判断,用户是否同意了授权。如果没有同意,可以根据回调进行相应处理:

    @Override
    public void onRequestPermissionsResult(int requestCode,
            String permissions[], int[] grantResults) {
    
    }
    

    初始化设置

    初始化需要在您的Application中调用我们的初始化接口:

    @Override
        public void onCreate() {
            super.onCreate();
            UMConfigure.init(this,"5a12384aa40fa3551f0001d1"
                    ,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0
    
        }
    

    需要设置各个平台的appkey:

      PlatformConfig.setWeixin("wxeb0858b766302e78", "6ab458c26cc7c6b8489ae34898426903");
            PlatformConfig.setQQZone("1149581072", "c7394704798a158208a74ab60104f0ba");
    

    签名配置

    签名的概念将文件夹中的签名文件放入到工程中,例如我的签名文件是debug.keystore

    然后增加签名文件的密码:

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

    signingConfigs配置进去,如下图所示:

    分享,例如在点击事件中直接加入如下代码

        new ShareAction(MainActivity.this).withText("hello")
                            .setDisplayList(SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)
                            .setCallback(shareListener).open();
                    UMWeb web = new UMWeb("https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=false&word=%E7%BE%8E%E5%A5%B3&step_word=&hs=0&pn=6&spn=0&di=29553718610&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=2&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=-1&cs=3633976638%2C143512992&os=3804935736%2C2570557697&simid=2085973135%2C839809798&adpicid=0&lpn=0&ln=3660&fr=&fmq=1544077227262_R&fm=result&ic=0&s=undefined&hd=0&latest=0&copyright=0&se=&sme=&tab=0&width=&height=&face=undefined&ist=&jit=&cg=girl&bdtype=13&oriquery=&objurl=http%3A%2F%2Fscimg.jb51.net%2Fallimg%2F170109%2F106-1F109120J9646.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Ffv_z%26e3B3kc8_z%26e3BgjpAzdH3Frtvp76jAzdH3Fut276jAzdH3F8m8c08_z%26e3Bip4&gsm=0&rpstart=0&rpnum=0&islist=&querylist=&selected_tags=0");
                    web.setTitle("This is music title");//标题
                    web.setDescription("my description");//描述
                    new ShareAction(MainActivity.this)
                            .withMedia(web)
                            .setDisplayList(SHARE_MEDIA.QQ,SHARE_MEDIA.QZONE,SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WEIXIN_CIRCLE)
                            .setCallback(shareListener).open();
    

    效果图

    最后赋上demo地址:https://download.csdn.net/download/heishuai123/10836478

  • 相关阅读:
    python中的编码问题
    CVPR2018 Tutorial 之 Visual Recognition and Beyond
    hdu 1376 Octal Fractions
    hdu 1329 Hanoi Tower Troubles Again!
    hdu 1309 Loansome Car Buyer
    hdu 1333 Smith Numbers
    hdu 1288 Hat's Tea
    hdu 1284 钱币兑换问题
    hdu 1275 两车追及或相遇问题
    hdu 1270 小希的数表
  • 原文地址:https://www.cnblogs.com/wzqnxd/p/10086669.html
Copyright © 2020-2023  润新知