弱联网
-
unity请用这个
-
MMSDK_1.2.1
-
jar加压把assets放到unity对应文件夹(因为unity不会把这里面的assets打到包里)
-
libs下的内容拷贝
非弱联网
-
拷贝libs下目录到对应文件夹
-
mmbilling.2.3.0.jar解压把assets放到unity对应文件夹(因为unity不会把这里面的assets打到包里)
-
修改Manifest
<!-- MM --> <service android:name="mm.purchasesdk.iapservice.PurchaseService" android:exported="true" > <!-- android:process="mm.iapServices" > --> <intent-filter android:priority="230" > <action android:name="com.aspire.purchaseservice.BIND" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <intent-filter android:priority="230" > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.SAFIAP.COMPONENT" > </category> </intent-filter> </service> <!-- android:excludeFromRecents="true" --> <!-- android:launchMode="singleInstance" --> <activity android:name="mm.purchasesdk.iapservice.BillingLayoutActivity" android:configChanges="orientation|keyboardHidden" android:theme="@android:style/Theme.Translucent" > <intent-filter android:priority="230" > <action android:name="com.herocraft.game.zombiederby.com.mmiap.activity" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <!-- android:process="safiap.framework.safframeworkmanager" begin --> <service android:name="safiap.framework.SafFrameworkManager" android:exported="true" android:process="safiap.framework" > <intent-filter android:priority="600" > <!-- ID for services declared in AIDL --> <action android:name="safiap.framework.sdk.ISAFFramework" /> </intent-filter> <intent-filter android:priority="600" > <!-- ID for services declared in AIDL --> <action android:name="safiap.framework.ACTION_START_DOWNLOAD" /> </intent-filter> <intent-filter android:priority="600" > <!-- ID for services declared in AIDL --> <action android:name="safiap.framework.ACTION_CHECK_UPDATE" /> </intent-filter> </service> <!-- receivers --> <receiver android:name="safiap.framework.CheckUpdateReceiver" > <intent-filter> <action android:name="safiap.framework.ACTION_CANCEL_NOTIFICATION" /> </intent-filter> <intent-filter> <action android:name="safiap.GET_SHARED_DATA" /> </intent-filter> <intent-filter> <action android:name="safiap.framework.ACTION_SET_TIMER" /> </intent-filter> </receiver> <activity android:name="safiap.framework.ui.UpdateHintActivity" android:configChanges="orientation" android:excludeFromRecents="true" android:launchMode="singleInstance" android:theme="@android:style/Theme.Translucent.NoTitleBar" > <intent-filter> <action android:name="safiap.framework.ACTION_TO_INSTALL" /> </intent-filter> <intent-filter> <action android:name="safiap.framework.ACTION_TO_INSTALL_IAP" /> </intent-filter> <intent-filter> <action android:name="safiap.framework.ACTION_NETWORK_ERROR_IAP" /> </intent-filter> <intent-filter> <action android:name="safiap.framework.ACTION_NETWORK_ERROR_FRAMEWORK" /> </intent-filter> </activity> <service android:name="safiap.framework.logreport.monitor.handler.LogreportHandler" android:process=":remote" /> <!-- android:process="safiap.framework.safframeworkmanager" end -->
-
注意上面的BillingLayoutActivity部分的action android:name,要换成你的包名+.com.mmiap.activity
Implement
-
将splash.jar,mmsmsbilling1.2.0.jar拷贝到Plugins/Android/libs
-
mmiap拷贝到 Plugins/Android/assets
-
CmBillingAndroid.cs GameStart.cs HelpAboutAndroid.cs CmBillingResult.cs拷贝到Plugins/Android
-
res/layout 下面的文件拷贝到 Plugins/Android/res/layout
-
res/valuse 下面的文件拷贝到 Plugins/Android/res/values
-
res/drawable drawable-hdpi 下面的文件拷贝到对应目录
-
修改CmBillingAndroid.cs,打开 private AndroidJavaClass klass = new AndroidJavaClass(“com.yx.mm.MMUnity”);
-
manifest修改,增加MM receiver和 MM的permission
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" android:installLocation="preferExternal" android:versionCode="900" android:versionName="0.9.0"> <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true"/> <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="true"> <!-- CT --> <activity android:name="com.yx.Splash" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:screenOrientation="sensor"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.yx.MyUnityPlayerProxyActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> <!-- MM <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> --> </activity> <activity android:name="com.yx.MyUnityPlayerActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> </activity> <activity android:name="com.yx.MyUnityPlayerNativeActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> <meta-data android:name="android.app.lib_name" android:value="unity" /> <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" /> </activity> <!-- MM <receiver android:name="mm.sms.purchasesdk.sms.SMSReceiver" android:exported="false" > <intent-filter> <action android:name="aspire.iap.SMS_SEND_ACTIOIN" /> <action android:name="aspire.iap.SMS_DELIVERED_ACTION" /> </intent-filter> </receiver> --> </application> <!-- AndroidManifest.xml.permision.txt --> <!-- CT --> <uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <!-- MM <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> --> </manifest>
CmBillingResult.cs
-
修改 计费成功之后的处理if (CmBillingAndroid.BillingResult.SUCCESS == results [1]) {
-
CmBillingResult.Billing(“018”);
GameStart.cs
-
在游戏最开始的scene,里面的maincamera下面挂载(Add Component)这个脚本
修改计费配置文件
-
res/valuse/g_strings.xml
-
找到MM计费点, 修改mmAPPID , mmAPPKEY, mm_item_cnt
-
对每个计费点开始配置, 第一个计费点是mm_item_1_xxx
-
配置id,就是计费点id
-
配置name, 计费点名称
-
des,计费点描述
-
img,图片(图片放到assets目录下,如果不配置,默认会找 assets/yx_index.png)
-
real,当前计费点只是展示,真正会调用real计费点