Unity MM

弱联网

  • 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计费点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值