zoukankan      html  css  js  c++  java
  • Unity和android之间的通信(adt方式)

    一 Unity调用Andorid方法

     1.1 这里介绍俩种方法,第一种是直接调用currentActivity,就是当前的Activity。

         Unity代码:

               

    /*******************
     *  Title:介入android sdk介入
     *  Author:CW
     *  ScriptName:   SDKForAndrodTest
     *  Des:
     ******************/
    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    public class SDKForAndrodTest : MonoBehaviour 
    {
    
        private AndroidJavaClass jc = null;
        private AndroidJavaObject jo = null;
    
        void Awake()
        {
            Debug.Log("这里是Unity的Awake");
            //得到android里面的类
            jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            //得到当前的Anorid的Activity对象
            jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
           
        }
        void OnGUI()
        {
            if(GUI.Button(new Rect(0,0,100,100),""))
            {
                if(jo!=null)
                {
                    //test是android里面的方法名称
                    jo.Call("test", "这是来自Unity的消息");
                }
            }
        }
    }
    

       android里面的代码:

         新建一个GameMainActivity类继承UnityPlayerActivity,并且重写onCreate方法。

    package com.CW.AndroidSDK;
    
    import com.unity3d.player.UnityPlayer;
    
    import android.graphics.PixelFormat;
    import android.os.Bundle;
    import android.text.style.SuperscriptSpan;
    import android.util.Log;
    import android.view.Window;
    
    public class GameMainActivity  extends UnityPlayerActivity
    {
    	@Override protected void onCreate (Bundle savedInstanceState)
    	{
    	  super.onCreate(savedInstanceState);
    	}
           //这里是Untiy调用的方法
    	private void test(String s)
    	{
    		Log.i("unity", "unity 调用了 java 方法:"+s);
    	}
    }
    

      之后修改AndroidManifest文件,将当前的activity改成GameMainActivity

    2 第二种方法是直接调用自己新建的Activity方法(这种我在测试的时候好像只能调用android里面的静态方法)

      在adt里面新建一个包和一个类如下:

     SDKAPI里面写上Unity要调用的方法。

    package com.sdk.api;
    
    import android.R.integer;
    import android.util.Log;
    
    public class SDKAPI {
    
    	private static int test(String s)
    	{
    		Log.i("unity", "unity 调用了 java 方法:"+s);
    		return 0;
    	}
    }
    

    Unity里面的代码:

    /*******************
     *  Title:
     *  Author:CW
     *  ScriptName:   SDKForAndrodTest2
     *  Des:
     ******************/
    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    public class SDKForAndrodTest2 : MonoBehaviour {
    
        private AndroidJavaClass jc = null;
    
    	// Use this for initialization
    	void Start () {
            //包名.类名
            jc = new AndroidJavaClass("com.sdk.api.SDKAPI");
            Debug.Log("这里是Unity的Awake");
    	}
    
        void OnGUI()
        {
            if (GUI.Button(new Rect(0, 0, 100, 100), ""))
            {
                if (jc != null)
                {
                    jc.CallStatic<int>("test", "这是来自Unity的消息");
                }
            }
        }
    
        private void CallBack(string str)
        {
            Debug.Log("这里是Android的回调:" + str);
        }
    }
    

     真机调试的时候都打印出出对应的log信息

    二 android里面调用Unity的方法

      这个很简单,调用UnityPlayer.UnitySendMessage方法就可以了,值得注意的是传参数的时候只能传一个字符串过去。

    package com.sdk.api;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    import com.CW.AndroidSDK3.UnityPlayerActivity;
    import com.unity3d.player.UnityPlayer;
    
    import android.R.integer;
    import android.util.Log;
    
    public class SDKAPI {
    
    	private static int test(String s)
    	{
    		Log.i("unity", "unity 调用了 java 方法:"+s);
    		JSONObject jsonObject=new JSONObject();
    		try {
    			jsonObject.put("Key", "这是Android发送给Unity的消息");
    		} catch (JSONException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		//回调给Unity
    		//第一个参数是游戏物体的名称
    		//第二个参数是方法名
    		//第三个参数是发送的消息字符串
    		UnityPlayer.UnitySendMessage("SDKForAndrodTest", "CallBack", jsonObject.toString());
    		return 0;
    		
    	}
    }
    

     打印的Log的信息如下:

     三 编写框架实现SDK的接入

     1 Untiy端

    1.1 抽象出基类

    /*******************
     *  Title:SDK接入
     *  Author:CW
     *  ScriptName:   SDKBase
     *  Des:SDK基类
     ******************/
    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    public class SDKBase
    {
        /// <summary>
        /// 初始化函数
        /// </summary>
        /// <param name="flag"></param>
        public virtual void Init(int flag=0) { }
        /// <summary>
        /// 登入
        /// </summary>
        public virtual void Login() {}
        /// <summary>
        /// 登出
        /// </summary>
        public virtual void Logout() { }
        /// <summary>
        /// 支付
        /// </summary>
        public virtual void Pay(int num,string orderId ) { }
        /// <summary>
        /// 游戏中心
        /// </summary>
        public virtual void GameCenter() { }
    
    }
    

     1.2 实现Android的SDK

    /*******************
     *  Title:三国无双案例
     *  Author:CW
     *  ScriptName:   SDKForAndroid
     *  Des:接入安卓SDK
     ******************/
    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    public class SDKForAndroid:SDKBase 
    {
    #if UNITY_ANDROID && !UNITY_EDITOR
        private AndroidJavaClass _jc;
        public SDKForAndroid():base()
        {
            _jc = new AndroidJavaClass("com.sdk.SDKAPI.SDKAPI");
        }
        public override void Init(int flag = 0)
        {
           if(_jc!=null)
            {
                _jc.CallStatic("Init",flag);
                Debug.Log("初始化SDK");
            }
        }
    
       public override void Login()
       {
           if (_jc != null)
           {
               _jc.CallStatic("Login");
           }
       }
    
        public override void Logout()
        {
            if (_jc != null)
            {
                _jc.CallStatic("Logout");
            }
        }
    
        public override void Pay(int num,string orderId)
        {
            if (_jc != null)
            {
                _jc.CallStatic("Pay",num,orderId);
            }
        }
    
        public override void GameCenter()
        {
            if (_jc != null)
            {
                _jc.CallStatic("GameCenter");
            }
        }
    
    #endif
    }
    

     1.3管理这些SDK

    /*******************
     *  Title:SDK接入
     *  Author:CW
     *  ScriptName:   SDKMgr
     *  Des:SDK管理器
     ******************/
    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    public class SDKMgr : MonoBehaviour 
    {
        /// <summary>
        /// 单利
        /// </summary>
        private static SDKMgr _instance;
        /// <summary>
        /// 得到实例
        /// </summary>
        public static SDKMgr Instance
        {
            get
            {
                if(_instance==null)
                {
                    GameObject tmpGo = new GameObject("SDKMgr");
                    _instance = tmpGo.AddComponent<SDKMgr>();
                }
                return _instance;
            }
        }
    
        private SDKBase _sdkAPI;
        void Awake()
        {
    #if UNITY_EDITOR
            _sdkAPI = new SDKBase();
    #elif UNITY_ANDROID
             Debug.Log("Awake");
            _sdkAPI = new SDKForAndroid();
    #endif
        }
    
        /// <summary>
        /// 初始化函数
        /// </summary>
        /// <param name="flag"></param>
        public  void Init(int flag = 0) 
        {
            _sdkAPI.Init(flag);
        }
        /// <summary>
        /// 登入
        /// </summary>
        public  void Login(LoginListener listener)
        {
            _currentListner = listener;
            _sdkAPI.Login();
        }
        /// <summary>
        /// 登出
        /// </summary>
        public  void Logout()
        {
            _sdkAPI.Logout();
        }
        /// <summary>
        /// 支付
        /// </summary>
        public  void Pay(PayData payData) 
        {
            CurrentPayData = payData;
            _sdkAPI.Pay(CurrentPayData.Num,CurrentPayData.OrderID);
        }
        /// <summary>
        /// 游戏中心
        /// </summary>
        public  void GameCenter()
        {
            _sdkAPI.GameCenter();
        }
    
    
        public PayData CurrentPayData;
        /// <summary>
        /// 支付数据
        /// </summary>
        public class PayData
        {
            /// <summary>
            /// 支付数量
            /// </summary>
            public int Num;
            /// <summary>
            /// 订单号
            /// </summary>
            public string OrderID;
    
            public PayData(int num,string orderId)
            {
                Num=num;
                OrderID=orderId;
            }
        }
        private LoginListener _currentListner;
        public interface LoginListener
        {
            void OnSucess(string uid);
            void OnFail();
            void OnCancel();
        }
    
        #region Android回调Unity
        private void LogicCallBack(string jsonObj)
        {
            if(string.IsNullOrEmpty(jsonObj))
            {
                if(_currentListner!=null)
                {
                    _currentListner.OnFail();
                }
                else
                {
                    Debug.LogError("_currentListner is null");
                }
            }
            else if(jsonObj.Equals("-1"))
            {
                if (_currentListner != null)
                {
                    _currentListner.OnCancel();
                }
                else
                {
                    Debug.LogError("_currentListner is null");
                }
            }
            else
            {
                if (_currentListner != null)
                {
                    _currentListner.OnSucess(jsonObj);
                }
                else
                {
                    Debug.LogError("_currentListner is null");
                }
            }
        }
        #endregion
    }
    

    1.4 Unity端的测试脚本

    /*******************
     *  Title:三国无双案例
     *  Author:CW
     *  ScriptName:   SDKTest
     *  Des:
     ******************/
    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    public class SDKTest : MonoBehaviour {
    
    	
        void OnGUI()
        {
            if(GUI.Button(new Rect(0,0,100,50),"Init"))
            {
               SDKMgr.Instance.Init();
            }else if(GUI.Button(new Rect(0,60,100,50),"Login"))
            {
                SDKMgr.Instance.Login(new LoginCallBack());
            }
            else if (GUI.Button(new Rect(0, 120, 100, 50), "Logout"))
            {
                SDKMgr.Instance.Logout();
            }
            else if (GUI.Button(new Rect(0, 190, 100, 50), "Pay"))
            {
    
                SDKMgr.Instance.Pay(new SDKMgr.PayData(5,"测试订单ID"));
            }
            else if (GUI.Button(new Rect(0, 270, 100, 50), "GameCenter"))
            {
                SDKMgr.Instance.GameCenter();
            }
        }
    
        public class LoginCallBack:SDKMgr.LoginListener
        {
    
            public void OnSucess(string uid)
            {
                Debug.Log("登录成功:"+uid);   
            }
    
            public void OnFail()
            {
                Debug.Log("登录失败");   
            }
    
            public void OnCancel()
            {
                Debug.Log("取消登录");   
            }
        }
    }
    

     2 ADT方面的代码(以接入百度SDK为例,详细的接入百度SDK步骤可以看百度SDK的接入文档,这里只说明接入的流程)

       2.1 把untiy的工程导出Android工程(不会百度一下就出来了),然后创建出负责和adt通信的包和类名,并且导入百度SDK的库文件。我的目录结构如下:

      2.2将我们的项目去引用这个库文件

     

      2.3下面我们编写SDKAPI这个类,代码如下:

    package com.sdk.SDKAPI;
    
    import android.R.integer;
    
    import com.CW.AndroidSDK.MainActivity;
    
    /*这里的方法要和Unity里面的要对应
     * */
    public class SDKAPI {
    
    	/*
    	 * SDK初始化
    	 * */
        public static  void Init(int flag) 
        {
            MainActivity.myHandler.sendEmptyMessage(SDKUtility.E_SDKFunType.INIT.ordinal());
        }
        /*
         * 登入
         * */
        public static void Login()
        {
        	 MainActivity.myHandler.sendEmptyMessage(SDKUtility.E_SDKFunType.LOGIN.ordinal());
        }
        /*
         * 登出
         * */
        public static void Logout()
        {
        	 MainActivity.myHandler.sendEmptyMessage(SDKUtility.E_SDKFunType.LOGOUT.ordinal());
        }
        
        public static PayData currPayData;
       /*
        * 支付
        * */
        public static void Pay(int num,String orderId) 
        {
        	 currPayData=new PayData(num,orderId);
        	 MainActivity.myHandler.sendEmptyMessage(SDKUtility.E_SDKFunType.PAY.ordinal());
        }
       /*
        * 游戏中心
        * */
        public static void GameCenter()
        {
        	 MainActivity.myHandler.sendEmptyMessage(SDKUtility.E_SDKFunType.GAMECENTER.ordinal());
        }
        /*
         * 支付数据
         * */
        public static  class PayData
        {
        	/*金币分
        	 * */
        	public int num;
        	/*订单号
        	 * */
        	public String orderIdString;
        	
        	public PayData(int num,String orderId)
        	{
        		this.num=num;
        		this.orderIdString=orderId;
        	}
        }
    }
    

       2.4编写MainActivity,这个类必须继承UnityPlayerActivity并且重写onCreate方法。(这样做是百度SDK文档要求的)

      这个类主要的作用去调用百度SDK里面的库文件,所以有些方法是文档里面要求的。而我们的SDKAPI类就是去调用这个类里面的一些方法,从而实现交互,下面是这个类的主要代码:

    package com.CW.AndroidSDK;
    
    import java.util.UUID;
    
    import android.R.string;
    import android.app.Activity;
    import android.graphics.PixelFormat;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Looper;
    import android.os.Message;
    import android.text.TextUtils;
    import android.util.Log;
    import android.view.Window;
    import android.widget.Toast;
    
    import com.baidu.gamesdk.ActivityAdPage;
    import com.baidu.gamesdk.ActivityAdPage.Listener;
    import com.baidu.gamesdk.ActivityAnalytics;
    import com.baidu.gamesdk.BDGameSDK;
    import com.baidu.gamesdk.BDGameSDKSetting;
    import com.baidu.gamesdk.BDGameSDKSetting.Domain;
    import com.baidu.gamesdk.IResponse;
    import com.baidu.gamesdk.ResultCode;
    import com.baidu.platformsdk.PayOrderInfo;
    import com.sdk.SDKAPI.SDKAPI;
    import com.sdk.SDKAPI.SDKUtility;
    import com.unity3d.player.UnityPlayer;
    import com.unity3d.player.UnityPlayerActivity;
    
    
    public class MainActivity extends UnityPlayerActivity
    {
    	public static Activity CurrentActivity;
    	public static MyHandler myHandler;//百度SDK
    	private ActivityAnalytics mActivityAnalytics;//百度SDK
    	private ActivityAdPage mActivityAdPage;
    	@Override protected void onCreate (Bundle savedInstanceState)
    	{
    		super.onCreate(savedInstanceState);
    		 CurrentActivity=this;
    		  mActivityAnalytics = new ActivityAnalytics(this);
    		  mActivityAdPage = new ActivityAdPage(this, new Listener(){
    				@Override
    				public void onClose() {
    					//TODO 关闭暂停页面,CP可以让玩家继续玩游戏
    					Toast.makeText(getApplicationContext(), "继续游戏", Toast.LENGTH_LONG).show();
    				}
    				
    			}); 
    		myHandler=new MyHandler();
    		
    	}
    	@Override protected void onDestroy()
    	{
    		BDGameSDK.destroy();
    		mUnityPlayer.quit();
    		super.onDestroy();
    	}
    	@Override
    	protected void onResume() { 
    		super.onResume(); 
    		mActivityAdPage.onResume(); 
    		mActivityAnalytics.onResume();
    		
    	}
    	
    	
    	@Override
    	protected void onStop() { 
    		super.onStop();
    		mActivityAdPage.onStop();
    	}
    	
    	@Override
    	protected void onPause() { 
    		super.onPause();
    		mActivityAdPage.onPause();
    		mActivityAnalytics.onPause();
    		
    	}
    	@Override
    	public void finish() {
    		// TODO Auto-generated method stub
    		super.finish();
    		BDGameSDK.closeFloatView(this);//关掉悬浮框
    	}
    	
    	
    	
    	public class MyHandler extends Handler
    	{
    		public MyHandler()
    		{
    			
    		}
    		 public MyHandler(Looper L) {
    	            super(L);
    	        }
    
    	        /*
    	         * 子类必须重写该方法,接受该消息
    	         * */
    	        @Override
    	        public void handleMessage(Message msg)
    			{
    				if(msg.what==SDKUtility.E_SDKFunType.INIT.ordinal())
    				{
    					initBDGameSDK();
    					Log.i("Unity", "调用了SDK初始化方法");
    				}else if(msg.what==SDKUtility.E_SDKFunType.LOGIN.ordinal())
    				{
    					BDSDKLogic();
    					Log.i("Unity", "调用了SDK登入方法");
    				}else if(msg.what==SDKUtility.E_SDKFunType.LOGOUT.ordinal())
    				{
    					BDSDKLogOut();
    					Log.i("Unity", "调用了SDK登出方法");
    				}else if(msg.what==SDKUtility.E_SDKFunType.PAY.ordinal())
    				{
    					BDSDKPay(SDKAPI.currPayData.num,SDKAPI.currPayData.orderIdString);
    					Log.i("Unity", "调用了SDK支付方法");
    				}else if(msg.what==SDKUtility.E_SDKFunType.GAMECENTER.ordinal())
    				{
    					Log.i("Unity", "调用了SDK游戏中心方法");
    				}
    				super.handleMessage(msg);
    				Log.i("Unity", "-----");
    			}
    	}
    	
    	
    	
    	
    	
    	
    	/*public static Handler MyHandler =new Handler()
    	{
    		public void handleMessage(Message msg)
    		{
    			if(msg.what==SDKUtility.E_SDKFunType.INIT.ordinal())
    			{
    			
    				Log.i("Unity", "调用了SDK初始化方法");
    			}else if(msg.what==SDKUtility.E_SDKFunType.LOGIN.ordinal())
    			{
    				Log.i("Unity", "调用了SDK登入方法");
    			}else if(msg.what==SDKUtility.E_SDKFunType.LOGOUT.ordinal())
    			{
    				Log.i("Unity", "调用了SDK登出方法");
    			}else if(msg.what==SDKUtility.E_SDKFunType.PAY.ordinal())
    			{
    				Log.i("Unity", "调用了SDK支付方法");
    			}else if(msg.what==SDKUtility.E_SDKFunType.GAMECENTER.ordinal())
    			{
    				Log.i("Unity", "调用了SDK游戏中心方法");
    			}
    			super.handleMessage(msg);
    			Log.i("Unity", "-----");
    		}
    		
    	};*/
    	
    	 private void setSuspendWindowChangeAccountListener(){//设置切换账号事件监听(个人中心界面切换中心)
    			BDGameSDK.setSuspendWindowChangeAccountListener(new IResponse<Void>(){
    
    				@Override
    				public void onResponse(int resultCode, String resultDesc,
    						Void extraData) { 
    					 switch(resultCode){
    					 case ResultCode.LOGIN_SUCCESS:
    						 //TODO 登录成功,不管之前是什么情况,游戏内都要切换成新的用户
    						 //返回主界面,重新刷新
    						 Toast.makeText(getApplicationContext(), "鐧诲綍鎴愬姛", Toast.LENGTH_LONG).show();
    						 break;
    					 case ResultCode.LOGIN_FAIL:
    						//TODO 登录失败,游戏内部之前如果是已经被登录的,要清楚自己记录的登录状态,设置成未登录。如果之前为登录,不用处理
    						 Toast.makeText(getApplicationContext(), "鐧诲綍澶辫触", Toast.LENGTH_LONG).show();
    						 break;
    					 case ResultCode.LOGIN_CANCEL:					 
    						//TODO 取消,操作前后的登录状态没变换
    						 break; 
    						 
    					 } 
    				}
    				
    			});
    		}
    	/*
    	 * 初始化SDK
    	 * */
    	private void initBDGameSDK()
    	{
    		BDGameSDKSetting mBDGameSDKSetting = new BDGameSDKSetting();
    		mBDGameSDKSetting.setAppID(3067515);//APPID
    		mBDGameSDKSetting.setAppKey("f3Os4GAOqxgm79GqbnkT9L8T");//APPKEY
    		mBDGameSDKSetting.setDomain(Domain.DEBUG);//
    		mBDGameSDKSetting.setOrientation(BDGameSDKSetting.Orientation.PORTRAIT);
    		 
    		BDGameSDK.init(this, mBDGameSDKSetting, new IResponse<Void>(){
    
    			@Override
    			public void onResponse(int resultCode, String resultDesc,
    					Void extraData) {
    				switch(resultCode){
    				case ResultCode.INIT_SUCCESS:
    					//初始化成功
    					
    					break;
    					
    				case ResultCode.INIT_FAIL:
    					//初始化失败
    					
    				default:
    					Toast.makeText(CurrentActivity, "启动失败", Toast.LENGTH_LONG).show();
    					finish();
    					
    				}
    				
    			}
    			
    		}); 
    	}
    	/*
    	 * 登录
    	 * */
    	 public void BDSDKLogic()
    	 {
    		   BDGameSDK.login(new IResponse<Void>() {
    				
    				@Override
    				public void onResponse(int resultCode, String resultDesc, Void extraData) { 
    					Log.d("login", "this resultCode is " + resultCode);
    					String hint = "";
    					switch(resultCode){
    					case ResultCode.LOGIN_SUCCESS:
    						hint="登录成功";
    						//拿到用户ID
    					    String uid=	BDGameSDK.getLoginUid();
    					    //UnityPlayer.UnitySendMessage("SDKMgr", "BDLoginCallBack", uid);
    					    SDKUtility.SendMsgToUnity(SDKUtility.CallBackFunName.LOGINCALLBACK_STRING, uid);
    					    //显示悬浮按钮
    					    BDGameSDK.showFloatView(CurrentActivity);
    					    //切换账号
    					    setSuspendWindowChangeAccountListener();
    						break; 
    					case ResultCode.LOGIN_CANCEL:
    						 SDKUtility.SendMsgToUnity(SDKUtility.CallBackFunName.LOGINCALLBACK_STRING, "-1");
    						hint="取消登录";
    						break;
    					case ResultCode.LOGIN_FAIL:
    						 SDKUtility.SendMsgToUnity(SDKUtility.CallBackFunName.LOGINCALLBACK_STRING, "");
    						hint="登录失败";
    					default:
    						SDKUtility.SendMsgToUnity(SDKUtility.CallBackFunName.LOGINCALLBACK_STRING, "");
    						hint="登录失败";
    					} 
    					Toast.makeText(getApplicationContext(), hint, Toast.LENGTH_LONG).show(); 
    				}
    			});
    	   }
    	  /*
    	  * 登出
    	  * */
    	   public void BDSDKLogOut()
    	   {
    		   BDGameSDK.logout();
    	   }
    	   /*支付(定额支付)
    	    * */
    	   public void BDSDKPay(int num,String oderId)
    	   {
    		   PayOrderInfo payOrderInfo = buildOrderInfo(num,oderId);
    			if(payOrderInfo == null){
    				return;
    			}
    			
    			BDGameSDK.pay(payOrderInfo, null, 
    					new IResponse<PayOrderInfo>(){
    				  
    						@Override
    						public void onResponse(int resultCode, String resultDesc,
    								PayOrderInfo extraData) 
    						{
    							String resultStr = "";
    							switch(resultCode){
    							case ResultCode.PAY_SUCCESS:
    								resultStr = "支付成功:" + resultDesc;
    								break;
    							case ResultCode.PAY_CANCEL:
    								resultStr = "取消支付";
    								break;	
    							case ResultCode.PAY_FAIL:
    								resultStr = "支付失败" + resultDesc;
    								break;	
    							case ResultCode.PAY_SUBMIT_ORDER:
    								resultStr ="支付失败"; 
    								break;	
    							}
    							Toast.makeText(getApplicationContext(), resultStr, Toast.LENGTH_LONG).show();
    							 
    						}
    				
    			});
    	   }
    	   /*
    	    * 构建订单信息
    	    * 总金额
    	    * 订单号
    	    * */
    	   public PayOrderInfo buildOrderInfo(int amount,String oderId){
    			String cpOrderId = UUID.randomUUID().toString();//
    			String goodsName = "金币";
    			String totalAmount = String.valueOf(amount);
    			int ratio = 1;
    			String extInfo = oderId;
    			
    			if(TextUtils.isEmpty(totalAmount)){
    				totalAmount = "0";
    			}
    			 
    			
    			PayOrderInfo payOrderInfo = new PayOrderInfo();
    			payOrderInfo.setCooperatorOrderSerial(cpOrderId);
    			payOrderInfo.setProductName(goodsName); 
    			long p = Long.parseLong(totalAmount); 
    			payOrderInfo.setTotalPriceCent(p);
    			payOrderInfo.setRatio(ratio);
    			payOrderInfo.setExtInfo(extInfo);
    			
    			return payOrderInfo;
    		}
    	   
    
    }
    

     注意我们要修改manifest文件。将Application里面的Android:name 改成

     android:name="com.CW.BaiDuSDKPro1.GameApplication"
    

     Application里面的Activity:name改成:

     android:name="com.CW.AndroidSDK.MainActivity"
    

     除了这些之外还有一些service和uses-permission还有其他的acrivity按照百度SDK的文档要求全部复制进去

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.CW.BaiDuSDKPro1" android:versionName="1.0" android:versionCode="1" android:installLocation="preferExternal">
      <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
      <application android:theme="@style/UnityThemeSelector" android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="false" android:isGame="true" android:banner="@drawable/app_banner" android:name="com.CW.BaiDuSDKPro1.GameApplication">
        <activity android:label="@string/app_name" android:screenOrientation="fullSensor" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.CW.AndroidSDK.MainActivity">
          <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
          </intent-filter>
          <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
        </activity>
          <!-- ↓↓↓ SDK ↓↓↓ -->
    
    
            <!-- 0-百度 1-多酷 2-91 -->
    
            <meta-data android:name="BDPlatformType" android:value="0" />
            
            
            <meta-data android:name="BDGameVersion" android:value="3.2.0" />
            
              <activity
                android:name="com.baidu.platformsdk.LoginActivity"
                android:configChanges="orientation|navigation|screenSize|keyboard|keyboardHidden"
                android:exported="false"
                android:excludeFromRecents="true"
                android:theme="@style/bdp_dialog_style_fullscreen"/>
            <activity
                android:name="com.baidu.platformsdk.AssistActivity"
                android:configChanges="orientation|navigation|screenSize|keyboard|keyboardHidden"
                android:exported="false"
                android:excludeFromRecents="true"
                android:theme="@style/bdp_dialog_style_fullscreen"/> 
            <activity
                android:name="com.baidu.platformsdk.BindPhoneActivity"
                android:configChanges="orientation|navigation|screenSize|keyboard|keyboardHidden"
                android:exported="false"
                android:excludeFromRecents="true"
                android:theme="@style/bdp_dialog_style_fullscreen"/>
            
            <activity
                android:name="com.baidu.platformsdk.CashierDeskActivity"
                android:configChanges="orientation|navigation|screenSize|keyboard|keyboardHidden"
                android:exported="false" 
                android:theme="@style/bdp_dialog_style_fullscreen"
                android:windowSoftInputMode="adjustPan"/>
            
            <activity
                android:name="com.baidu.platformsdk.WebActivity"
                android:configChanges="orientation|navigation|screenSize|keyboard|keyboardHidden"
                android:exported="false" 
                android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                android:windowSoftInputMode="adjustPan"/>
    
            
            <activity
                android:name="com.baidu.platformsdk.ModifyPasswordActivity"
                android:configChanges="orientation|navigation|screenSize|keyboard|keyboardHidden"
                android:exported="false"
                android:excludeFromRecents="true"
                android:theme="@style/bdp_dialog_style_fullscreen"/>
            <activity
                android:name="com.baidu.platformsdk.ThirdPartyLoginActivity"
                android:configChanges="orientation|navigation|screenSize|keyboard|keyboardHidden"
                android:excludeFromRecents="true"
                android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                android:exported="false"/>
            <activity
                android:name="com.baidu.platformsdk.VisitorBindActivity"
                android:configChanges="orientation|navigation|screenSize|keyboard|keyboardHidden"
                android:exported="false"
                android:excludeFromRecents="true"
                android:theme="@style/bdp_dialog_style_fullscreen"/> 
            <activity
                android:name="com.baidu.platformsdk.BaiduBeanDetailActivity"
                android:configChanges="orientation|navigation|screenSize|keyboard|keyboardHidden"
                android:exported="false"
                android:windowSoftInputMode="adjustPan"
                android:theme="@style/bdp_dialog_style_fullscreen" /> 
            <activity
                android:name="com.baidu.platformsdk.OrderDetailActivity"
                android:configChanges="orientation|navigation|screenSize|keyboard|keyboardHidden"
                android:exported="false"
                android:windowSoftInputMode="adjustPan"
                android:theme="@style/bdp_dialog_style_fullscreen" />
             
            
            <activity
                android:name="com.baidu.platformsdk.SapiWebActivity"
                android:configChanges="orientation|navigation|screenSize|keyboard|keyboardHidden"
                android:exported="false"
                android:windowSoftInputMode="adjustPan"
                android:theme="@style/bdp_dialog_style_fullscreen" />
            <activity
                android:name="com.baidu.platformsdk.SapiLoginProxyActivity"
                android:configChanges="orientation|navigation|screenSize|keyboard|keyboardHidden"
                android:exported="false"
                android:windowSoftInputMode="adjustPan"
                android:theme="@style/bdp_dialog_style_fullscreen" />
            
            <service
                android:name="com.baidu.platformsdk.BDPlatformService"
                android:exported="false" />
    
            <!-- ↑↑↑ SDK ↑↑↑ -->
    
    
            <!-- ↓↓↓ 百度钱包 ↓↓↓ -->
            <activity
                android:name="com.baidu.android.pay.ui.WelcomeActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivityWelcome"
                android:windowSoftInputMode="stateHidden" />
            <activity
                android:name="com.baidu.android.pay.ui.PayResultActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="stateHidden" >
            </activity>
            <activity
                android:name="com.baidu.android.pay.ui.PwdCheckActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="stateVisible" >
            </activity>
            <activity
                android:name="com.baidu.android.pay.ui.PwdSetActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="stateVisible" >
            </activity>
            <activity
                android:name="com.baidu.android.pay.ui.PwdConfirmActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="stateVisible" >
            </activity>
            <activity
                android:name="com.baidu.android.pay.ui.PwdPayActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivitTranslucent"
                android:windowSoftInputMode="stateVisible" />
            <activity
                android:name="com.baidu.android.pay.ui.PwdPaySmsActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivitTranslucent"
                android:windowSoftInputMode="stateHidden" />
            <activity
                android:name="com.baidu.android.pay.ui.WebViewActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="stateHidden" >
            </activity>
            <activity
                android:name="com.baidu.android.pay.ui.BindFirstActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="adjustResize" />
            <activity
                android:name="com.baidu.android.pay.ui.BindSecondActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="stateHidden" />
            <activity
                android:name="com.baidu.android.pay.ui.BindSecondCreditAcitvity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="stateHidden" />
            <activity
                android:name="com.baidu.android.pay.ui.BindSecondCredit2Activity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="stateHidden" />
            <activity
                android:name="com.baidu.android.pay.ui.BindThirdActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="adjustResize" />
            <activity
                android:name="com.baidu.android.pay.ui.SelectBindCardActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="stateHidden" />
            <activity
                android:name="com.baidu.android.pay.ui.LoginActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="stateHidden" />
            <activity
                android:name="com.baidu.android.pay.ui.PassNormalizeActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="stateHidden" />
            <activity
                android:name="com.baidu.android.pay.ui.OrderHomeActivity"
                android:configChanges="keyboardHidden|navigation|orientation|screenSize"
                android:excludeFromRecents="true"
                android:exported="false"
                android:theme="@style/EbpayThemeActivit"
                android:windowSoftInputMode="stateHidden" />
                 
    
            <!-- ↑↑↑ 百度钱包 ↑↑↑ -->
            
            <!-- ↓↓↓ passport ↓↓↓ -->
            <activity
                android:name="com.baidu.sapi2.utils.LoginProtectAcitivity"
                android:screenOrientation="portrait"
                android:theme="@style/bdp_SapiTheme"
                android:windowSoftInputMode="adjustPan" />
            <!-- ↑↑↑ passport ↑↑↑ -->
    
    
            <!-- ↓↓↓ 银联SDK ↓↓↓ -->
            <activity android:name="com.unionpay.uppay.PayActivity"
                android:screenOrientation="landscape" />
            <!-- ↑↑↑ 银联SDK ↑↑↑ -->
            
            <!-- ↓↓↓ 支付宝插件 ↓↓↓ -->
            <activity android:name="com.alipay.sdk.app.H5PayActivity"
    				   android:configChanges="orientation|keyboardHidden|navigation"
    				   android:exported="false"
    				   android:screenOrientation="behind" />
            <activity android:name="com.alipay.sdk.auth.AuthActivity"
    				   android:configChanges="orientation|keyboardHidden|navigation"
    				   android:exported="false"
    				   android:screenOrientation="behind" />
            <!-- ↑↑↑ 支付宝插件 ↑↑↑ -->
            
            <!-- ↓↓↓ 多酷SDK ↓↓↓ --> 
            <activity
                android:name="com.duoku.platform.ui.DKContainerActivity"
                android:configChanges="orientation|keyboardHidden|navigation|screenSize"
                android:launchMode="singleTop"
                android:theme="@style/StyledIndicators" >
            </activity>
    
            <service android:name="com.duoku.platform.service.DKSuspensionService" />
    
            <!-- 贴吧 start -->
            <activity
                android:name="com.baidu.tiebasdk.ext.motu.SelectBarActivity"
                android:configChanges="orientation|keyboardHidden|navigation" />
            <activity
                android:name="com.baidu.tiebasdk.account.InputUserNameActivity"
                android:configChanges="orientation|keyboardHidden|navigation"
                android:theme="@android:style/Theme.Translucent.NoTitleBar" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.account.LoginActivity"
                android:configChanges="orientation|keyboardHidden|navigation" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.account.Register2Activity"
                android:configChanges="orientation|keyboardHidden|navigation" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.account.ActivationActivity"
                android:configChanges="orientation|keyboardHidden|navigation" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.account.ProtocolActivity"
                android:configChanges="orientation|keyboardHidden|navigation" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.frs.FrsActivity"
                android:configChanges="orientation|keyboardHidden|navigation" >
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.frs.FrsImageActivity"
                android:configChanges="orientation|keyboardHidden|navigation" >
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.mention.MentionActivity"
                android:configChanges="orientation|keyboardHidden|navigation" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.mention.ReplyMeActivity"
                android:configChanges="orientation|keyboardHidden|navigation" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.mention.AtMeActivity"
                android:configChanges="orientation|keyboardHidden|navigation" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.pb.NewPbActivity"
                android:configChanges="orientation|keyboardHidden|navigation"
                android:windowSoftInputMode="adjustResize|stateHidden" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.pb.ImagePbActivity"
                android:configChanges="orientation|keyboardHidden|navigation"
                android:windowSoftInputMode="adjustResize" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.write.WriteActivity"
                android:configChanges="orientation|keyboardHidden|navigation"
                android:windowSoftInputMode="stateVisible|adjustResize" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.write.VcodeActivity"
                android:configChanges="orientation|keyboardHidden|navigation"
                android:windowSoftInputMode="stateVisible|adjustResize" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.write.NewVcodeActivity"
                android:configChanges="orientation|keyboardHidden|navigation"
                android:windowSoftInputMode="stateHidden" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.write.AtListActivity"
                android:configChanges="orientation|keyboardHidden|navigation" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.write.WriteImageActivity"
                android:configChanges="orientation|keyboardHidden|navigation" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.pb.ImageActivity"
                android:configChanges="orientation|keyboardHidden|navigation" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity
                android:name="com.baidu.tiebasdk.pb.WebActivity"
                android:configChanges="orientation|keyboardHidden|navigation" >
                <intent-filter>
                </intent-filter>
            </activity>
            <activity android:name="com.baidu.tiebasdk.more.AccountActivity" >
                <intent-filter>
                </intent-filter>
            </activity>
            <!-- 贴吧activity end -->
            
            <!-- 贴吧 service begin -->
            <service
                android:name="com.baidu.tiebasdk.service.TiebaUpdateService"
                android:enabled="true" >
                <intent-filter>
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </service>
            <service
                android:name="com.baidu.tiebasdk.service.TiebaFullUpdateService"
                android:enabled="true" >
                <intent-filter>
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </service>
            <service
                android:name="com.baidu.tiebasdk.service.ClearTempService"
                android:enabled="true" >
                <intent-filter>
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </service>
            <service
                android:name="com.baidu.tiebasdk.service.FatalErrorService"
                android:enabled="true" >
                <intent-filter>
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </service>
            <service
                android:name="com.baidu.tiebasdk.service.TiebaSyncService"
                android:enabled="true" >
                <intent-filter>
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </service>
            <service
                android:name="com.baidu.tiebasdk.service.TiebaMessageService"
                android:enabled="true" >
                <intent-filter>
                    <action android:name="com.baidu.tiebasdk.service.Message" />
    
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </service>
            <service
                android:name="com.baidu.tiebasdk.service.TiebaPrepareImageService"
                android:enabled="true" >
                <intent-filter>
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </service>
            <!-- 贴吧 service end -->
    
    
            <!-- push service client -->
            <receiver android:name="com.duoku.platform.push.MyReceiver" >
                <intent-filter>
                    <action android:name="com.duoku" />
                </intent-filter>
            </receiver>
            <receiver android:name="com.duoku.platform.push.PushMessageReceiver" >
                <intent-filter>
    
                    <!-- 接收push消息 -->
                    <action android:name="com.baidu.android.pushservice.action.MESSAGE" />
                    <!-- 接收bind,unbind,fetch,delete等反馈消息 -->
                    <action android:name="com.baidu.android.pushservice.action.RECEIVE" />
                    <action android:name="com.baidu.android.pushservice.action.notification.CLICK" />
                </intent-filter>
            </receiver>
            <receiver
                android:name="com.baidu.android.pushservice.PushServiceReceiver"
                android:process=":bdservice_v1" >
                <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
                    <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                    <action android:name="com.baidu.android.pushservice.action.notification.SHOW" />
                    <action android:name="com.baidu.android.pushservice.action.media.CLICK" />
                    <action android:name="android.intent.action.MEDIA_MOUNTED" />
                    <action android:name="android.intent.action.USER_PRESENT" />
                    <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
                    <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
                </intent-filter>
            </receiver>
            <receiver
                android:name="com.baidu.android.pushservice.RegistrationReceiver"
                android:process=":bdservice_v1" >
                <intent-filter>
                    <action android:name="com.baidu.android.pushservice.action.METHOD" />
                    <action android:name="com.baidu.android.pushservice.action.BIND_SYNC" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.PACKAGE_REMOVED" />
    
                    <data android:scheme="package" />
                </intent-filter>
            </receiver>
    
            <service
                android:name="com.baidu.android.pushservice.PushService"
                android:exported="true"
                android:process=":bdservice_v1" >
                <intent-filter>
                    <action android:name="com.baidu.android.pushservice.action.PUSH_SERVICE" />
                </intent-filter>
            </service>
            <service
                android:name="com.baidu.android.pushservice.CommandService"
                android:exported="true" />
            <!-- push service end -->
    
    
            <!-- 贴吧 receiver start -->
            <receiver android:name="com.baidu.tiebasdk.service.TiebaReceiver" >
                <intent-filter>
                    <action android:name="com.baidu.tiebasdk.broadcast.service" />
                    <action android:name="com.baidu.tiebasdk.broadcast.sync" />
                </intent-filter>
            </receiver>
            <receiver android:name="com.baidu.tiebasdk.service.InstallReceiver" >
                <intent-filter>
                    <action android:name="android.intent.action.PACKAGE_ADDED" />
                    <action android:name="android.intent.action.PACKAGE_REMOVED" />
    
                    <data android:scheme="package" />
                </intent-filter>
            </receiver>
            <receiver android:name="com.baidu.tiebasdk.service.SyncLoginReceiverForAs" >
                <intent-filter>
                    <action android:name="com.baidu.tiebasdk.broadcast.syncLoginFromAS" />
                </intent-filter>
            </receiver>
    
            <!-- 贴吧  receiver end -->
            <!-- ↑↑↑ 多酷SDK ↑↑↑ -->
        
      </application>
      <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="21" />
      <uses-feature android:glEsVersion="0x00020000" />
      <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
      <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
      <uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />
      
        <!-- ↓↓↓ SDK ↓↓↓ -->
        <uses-permission android:name="android.permission.SEND_SMS" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.WRITE_SETTINGS" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.GET_TASKS" />
        
    
        <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
        <!-- ↑↑↑ SDK ↑↑↑ -->
        
        <!-- ↓↓↓ DK SDK ↓↓↓ --> 
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
        <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />
        <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.FLASHLIGHT" />
        <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
        <uses-permission android:name="android.permission.BROADCAST_STICKY" /> 
        <uses-permission android:name="android.permission.CALL_PHONE" />
        
    </manifest>
    

     测试运行的界面如下:

  • 相关阅读:
    Date计算人活了多少天
    微信红包平均分法
    math practise
    Array sort
    static memory management
    java数组中的选择排序
    java数组中的冒泡排序
    数组联系2 模拟酒店系统
    数组练习1(模拟栈)
    二维数组
  • 原文地址:https://www.cnblogs.com/weiqiangwaideshijie/p/7715861.html
Copyright © 2011-2022 走看看