unity调用Android Api实现短信发送和震动功能

Android部分:

1:安装Java环境和Eclipse。(只要你的unity能够发布apk文件,那我相信你的环境也已经配置好了)。

2:创建Android工程:

(1)



(2)填写项目名称



(3)选择上Mark this project as alibrary



(4)Next、Next一直到最后Finish,全部按默认值。


(5)添加Class.jar,这是unity 提供的编译Android游戏所需要的jar包,它位于%unity_home%\Editor\Data\PlaybackEngines\androidplayer

\bin\classes.jar




(6)开始写java代码:

注意:把public class MainActivity extends Activity 改为public class MainActivity extends UnityPlayerActivity,并把OnCreate函数中的

setContentView(R.layout.activity_main);注销否则运行后会出现Android中的"Hello World"字符串。把OnCreateOptionsMenu(Menu menu)

package com.example.androidplugins;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

//震动的包  
import android.os.Vibrator;  
import android.app.Service;  
//发送短信库
import android.telephony.SmsManager;
import com.unity3d.player.UnityPlayerActivity;

public class MainActivity extends UnityPlayerActivity {
	private Vibrator mVibrator01;//声明一个振动器对象  
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
//		setContentView(R.layout.activity_main);
	}
	
	//我这里所需要的参数是对方的手机号码和要发送短信息的内容,
    //在unity中调用该方法时传入这两个参数
    public static void SMSSend(String number, String content){
    	SmsManager sms = SmsManager.getDefault();
    	sms.sendTextMessage(number, null, content, null, null);
    }
    
  //震动函数  

  	public   void ClickShake()  {  
          mVibrator01 = (Vibrator)super.getApplication().getSystemService(Service.VIBRATOR_SERVICE);   
          mVibrator01.vibrate(new long[]{100,10,100,1000},-1);//自定义整栋模式,只震动一次  
      }  

}


(7)添加权限:短信发送权限:android.permission.SEND_SMS  手机震动权限:android.permission.VIBRATE。





(8)导出Jar包





此时在你所选择的目录中生成了一个*.jar文件


Unity部分:

创建插件目录,注意单词不要拼错。



把Eclipse工程目录中的:libs 、res目录和AndroidManifest.xml拷贝到unity的指定目录下,打包的*.jar包放在Android/bin目录下。


现在开始写Unity代码:

using UnityEngine;
using System.Collections;

public class Script : MonoBehaviour {	
	private string txtNumber = "";
	private string txtMessage = "";
	private AndroidJavaObject ajc;
	void Start () 
	{
		AndroidJavaClass jc=new AndroidJavaClass("com.unity3d.player.UnityPlayer");  
		ajc = jc.GetStatic<AndroidJavaObject>("currentActivity");  
	}	
	
	void OnGUI()
	{		
		GUI.Label(new Rect(40, 40, 100, 50), "PhoneNumber");
		txtNumber = GUI.TextField (new Rect (140, 40, 160, 30), txtNumber);
		
		GUI.Label(new Rect(40, 80, 100, 50), "SendMessage");
		txtMessage = GUI.TextArea (new Rect (140, 80, 200, 160), txtMessage);
		
		if(GUI.Button(new Rect(240, 250, 100, 40), "Send"))
		{
			if(txtNumber==""&&txtMessage=="")
				return;
			SendMsg(txtNumber, txtMessage);

		}
	}	
	
	void SendMsg(string number, string msg)
	{
		ajc.CallStatic("SMSSend", new string[]{number, msg});
		ajc.Call("ClickShake");  
		txtMessage = "";
	}
	
}


发布到真机上调试:第一次发送时提示是否允许该应用发送短信,发送短信的同时手机震动。

使用Unity Icon图标:

 <application
        android:allowBackup="true"
        android:icon="@drawable/app_icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >



下载资源:http://download.csdn.net/detail/he_wen_jian/8471209



评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值