许多手机应用都少不了分享到其他社交软件的功能,今天菜鸡有兴趣试了一下shareSDK的安卓接入,感觉方便好用,所以写一篇博客记录一下使用方法。
首先打开android studio建立一个新项目
然后去shareSDK的官网下载shareSDKforandroid
http://www.mob.com/downloads/
点击安卓图标进入下载SDK
大家随意选择上面的平台即可,下载SDK的zip后加压,打开shareSDK for android 文件夹,打开快速集成QuickIntegrater.jar
打开以后可以选择要集成的平台,不过先不忙点确定,这里一定要保证包名一致,所以去项目的androidMainfest.xml文件下拷贝包名并粘贴
点击确定以后,文件夹中出现一个Sample文件夹,等会就用这个文件来接入。
首先进入Sample文件夹下面的libs文件夹如下图
可以看到这里有很多jar文件,需要把它们都导入项目里面,然后进入项目,app,把刚才的一堆jar文件复制,拷贝到项目的libs文件夹中。
拷贝完成如图
但这样还不行,还需要将它们添加进来,按住ctrl左键点击全选,右键选择Add as Library添加进来,结果如下图
然后回到Sample文件下,把assets文件夹整个拷贝到app,src,main文件下面,效果图如下
再次回到Sample文件夹,把res文件夹下面的所有文件夹拷贝到app,src,main,res文件夹下,注意不可以直接将res文件夹全部粘贴,否则文件夹重名可能导致没有分享图标
最后,将Sample文件夹src目录下的cn文件夹整个拷贝到app,src,main,Java目录下,如图
现在导入已经全部完成,请大家检查一下上面的路径有没有错误,没有错误的话,下面先回到Mob官网,注册一个账号,并进入Mob开发者后台,如图
这样主要是为了获取自己的Appkey和App secret,点击显示可以看到Appsecret,如果不获取那么上面接入的SDK是不能使用的。
获取完毕以后,集成就相当于完成了,下面先添加权限,打开androidMainFest.xml添加如下权限(下面的代码均可直接粘贴使用)
<uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/> <uses-permission android:name="android.permission.GET_ACCOUNTS"/> <!-- 蓝牙分享所需的权限 --> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />然后添加SDK的activity,整个项目的application如下
<application android:name="com.mob.MobApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- 以MobApplication作为项目Application --> android:name="com.mob.MobApplication"> <!-- 其它的activity --> <!-- ShareSDK的activity --> <activity android:name="com.mob.tools.MobUIShell" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:windowSoftInputMode="stateHidden|adjustResize" > <intent-filter> <data android:scheme="tencent100371282" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <!-- 调用新浪原生SDK,需要注册的回调activity --> <intent-filter> <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <!--集成line客户端登录授权,需要添如下格式的过滤器--> <intent-filter> <data android:scheme="line.1477692153" /> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <!-- 填写您从Mob开发者后台中得到的Appkey和AppSecret --> <meta-data android:name="Mob-AppKey" android:value="您的AppKey"/> <meta-data android:name="Mob-AppSecret" android:value="您的AppSecret"/> </application>
注意最后的两行,输入你自己的AppKey和AppSecret,这样活动就写完了
<!--微信分享回调 --> <activity android:name=".wxapi.WXEntryActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" /> <!--易信分享回调 --> <activity android:name=".yxapi.YXEntryActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" /> <!-- 支付宝分享回调 --> <activity android:name=".apshare.ShareEntryActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true"/>如果想要加入上面的三个,那么需要到官网去注册你的你的应用程序并等待审核,一般要1到3天,然后分享功能是免费的,而登录功能需要收费,这里程序就不加上面的三种了。如果大家想要加入如微信登录这种功能的话,需要申请下来以后,在ShareSDK.xml中替换id和AppKey
最后在androidMainFest.xml下面,Application中添加android:name="com.mob.MobApplication"
<application android:name="com.mob.MobApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher"
然后添加
<meta-data android:name="Mob-AppKey" android:value="你的AppKey"/> <meta-data android:name="Mob-AppSecret" android:value="你的AppSecret"/>更改AppKey和Appsecret,这样所有配置都完成了,接下来只需要添加一个按钮使分享界面能显示出来即可
打开layout文件夹下面的activityMain.xml,写一个Button
<Button android:id="@+id/share" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="click me to share"/>在MainActivity.java中
Button button=(Button)findViewById(R.id.share); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(getApplicationContext(),"123456",Toast.LENGTH_SHORT).show(); showShare(); } });
showShare()如下
private void showShare() { OnekeyShare oks = new OnekeyShare(); //关闭sso授权 oks.disableSSOWhenAuthorize(); // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间等使用 oks.setTitle("标题"); // titleUrl是标题的网络链接,QQ和QQ空间等使用 oks.setTitleUrl("http://sharesdk.cn"); // text是分享文本,所有平台都需要这个字段 oks.setText("我是分享文本"); // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数 //oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片 // url仅在微信(包括好友和朋友圈)中使用 oks.setUrl("http://sharesdk.cn"); // comment是我对这条分享的评论,仅在人人网和QQ空间使用 oks.setComment("我是测试评论文本"); // site是分享此内容的网站名称,仅在QQ空间使用 oks.setSite(getString(R.string.app_name)); // siteUrl是分享此内容的网站地址,仅在QQ空间使用 oks.setSiteUrl("http://sharesdk.cn"); // 启动分享GUI oks.show(this); }不要忘记添加
import android.widget.Button; import android.widget.Toast; import cn.sharesdk.onekeyshare.OnekeyShare;OK,现在运行到真机上或者打包APK即可在手机上调用分享功能了,我这个是新建的项目按上面一步步来的,最后效果如下
过几天应该会写cocos2d-x集成的功能,感觉比这个难多了
拒绝抄袭,从我做起