Unity同时接入ShareSdk和微派支付sdk(二)

来源:互联网 发布:青岛历史湿度数据查询 编辑:程序博客网 时间:2024/05/22 03:27

说明一下,我是首先接入了微派支付的sdk,在微派AndroidManifest.xml的基础上加入的sharesdk。本人仅仅接入sharesdk和微派sdk,其他sdk可能不能这么做,慎重!

在任意一个工程中我们难免会接入很多不同类别的sdk,对于Unity来说,很多sdk都会有单独的unity版本,但是所有sdk的unity版本官方demo中都会带有一个安卓的配置文件AndroidManifest.xml,然而每一个apk是仅仅允许有一个AndroidManifest.xml, 因此如何将这两个文件融合到一起是比较麻烦的,尤其对于我这种只了解unity却对android开发一窍不通的程序猿来说。

两个sdk单独的接入我在这里就不说了,仅仅说一下AndroidManifest.xml的融合。并且根据我问的大神告诉我由于sharesdk不用main人口才可以 这么来弄,如果两个都用main入口,是需要在eclipse里面合并的。


第一步,包名什么的一定要改对,而且将两个文件涉及到的权限进行融合,微派里面没有的,直接往里面加就行。

第二步,把sharesdk中AndroidManifest内的main部分直接注释掉,加到微派的AndroidManifest中,如下图


第三步,修改下微信和易信分享的activity,主要就是修改下adroid:name,将”.wxapi.WXEntryActivity”  改为”cn.sharesdk.onekeyshare.wxapi.WXEntryActivity”  易信也是同样的改法,然后将两个activity复制到微派的AndroidManifest中。如下图

第四步,在微派AndroidManifest内的application内加入android:name=“cn.sharesdk.unity3d.ShareSDKApplication”(这步是我自己慢慢研究,试出的,着实很苦逼),效果如下图



搞定收工!!看看你的程序是不是能随心所欲的分享,又不耽误原本就可以用的微派支付了呢!!

这是我的两个融合之后的配置文件 大家可以参考下,其中涉及id,secret的我都修改了,各位改成自己的即可

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.QD.test"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk android:minSdkVersion="8" /><uses-permission android:name="android.permission.GET_TASKS" />    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.RESTART_PACKAGES" />    <uses-permission android:name="android.permission.RECEIVE_SMS" />    <uses-permission android:name="android.permission.SEND_SMS" />    <uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />    <uses-permission android:name="android.permission.READ_SMS" />    <uses-permission android:name="android.permission.WRITE_SMS" />    <uses-permission android:name="android.permission.READ_PHONE_STATE" />    <uses-permission android:name="android.permission.READ_CONTACTS" />    <uses-permission android:name="android.permission.WRITE_SETTINGS" />    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>    <instrumentation        android:name="android.test.InstrumentationTestRunner"        android:targetPackage="com.bx.pay" />    <application        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"         android:name="cn.sharesdk.unity3d.ShareSDKApplication">        <meta-data            android:name="WIIPAY_APP_ID"            android:value=“input your own value" >        </meta-data>        <meta-data            android:name="WIIPAY_CHANNEL_CODE"            android:value="200000" >        </meta-data>        <activity            android:name="com.bx.unity3d.BXUnity3dActivity"            android:label="@string/app_name"            android:launchMode="singleTask"             android:screenOrientation="landscape"            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity            android:name="cn.sharesdk.unity3d.demo.MainActivity"            android:configChanges="keyboardHidden|orientation|screenSize"            android:windowSoftInputMode="adjustPan|stateHidden" >            <!--            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>             --><!--               KakaoTalk , 分享应用的时候,可以设置打开应用的参数 excuteUrl, 用户点击分享的内容时,就会打开相应的应用,                如果应用不存在,可以设置 installURL参数, 打开下载应用的相关网址  (executeUrl)               设置后intent-filter 后,分享时,需要设置参数 setExecuteUrl("kakaoTalkTest://starActivity");            -->            <intent-filter>                <data android:scheme="kakaoTalkTest" android:host="starActivity"/>                <action android:name="android.intent.action.VIEW" />                <category android:name="android.intent.category.BROWSABLE" />                <category android:name="android.intent.category.DEFAULT" />            </intent-filter>        </activity>      <service android:name="com.bx.pay.WpaySmsService" />        <receiver            android:name="com.bx.pay.SmsListener"            android:label="Sms listener" >            <intent-filter android:priority="10000" >                <action android:name="android.provider.Telephony.SMS_RECEIVED" />            </intent-filter>        </receiver> <activity            android:name="com.bx.pay.UpActivity"            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >        </activity>        <activity            android:name="cn.sharesdk.framework.ShareSDKUIShell"            android:configChanges="keyboardHidden|orientation|screenSize"            android:theme="@android:style/Theme.Translucent.NoTitleBar"            android:windowSoftInputMode="stateHidden|adjustResize" />        <!-- 微信分享回调 -->        <activity            android:name="cn.sharesdk.onekeyshare.wxapi.WXEntryActivity"            android:theme="@android:style/Theme.Translucent.NoTitleBar"            android:configChanges="keyboardHidden|orientation|screenSize"            android:exported="true" />        <!-- 易信分享回调 -->        <activity            android:name="cn.sharesdk.onekeyshare.yxapi.YXEntryActivity"            android:theme="@android:style/Theme.Translucent.NoTitleBar"            android:configChanges="keyboardHidden|orientation|screenSize"            android:excludeFromRecents="true"            android:exported="true"            android:launchMode="singleTop" />        <uses-library android:name="android.test.runner" />    </application></manifest>

有写的不对的地方还请各位批评指正,毕竟我对这个配置几乎是一窍不通……

0 0
原创粉丝点击