unity与安卓通讯的一些事儿
1、unity与安卓通讯的两种方法:
2、unity如何调用安卓
public class UnityCallAndroid:MonoBehaviour{
private AndroidJavaClass ajc;
private AndroidJavaObject ajo;
// Use this for initialization
void Start () {
ajc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
ajo = ajc.GetStatic<AndroidJavaObject>("currentActivity");
}
//调用安卓方法
public void callAndroid()
{
ajo.Call("broadcast");//参数是方法名,可以带参数,可以有返回值
}
}
3、安卓如何调用unity
public class Main2Activity extends UnityPlayerActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
//调用unity
public void callUnity(String obj,String func,String params)
{
//第一个参数是挂载脚本的gameobject,第二个参数是方法名,最后是方法参数
UnityPlayer.UnitySendMessage(obj,func,params);
}
4、需要注意的事
5、unity如何发送接收安卓广播
//发送广播
public void broadcast(String name,String content)
{
Intent intent=new Intent();
intent.setAction(name);//广播的名字
intent.putExtra("content",content);//指定广播内容
sendBroadcast(intent); //发送广播
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
intentFilter=new IntentFilter();
actionName="";
intentFilter.addAction(actionName);
msgListener=new MsgListener();
registerReceiver(msgListener,intentFilter);
}
//广播监听类
class MsgListener extends BroadcastReceiver
{
@Override
public void onReceive(Context content, Intent intent)
{
String action=intent.getAction();
if (actionName.equals(action))
{
String msg=intent.getStringExtra("content");
Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_SHORT).show();
}
}
}
6、unity如何接收到广播后从后台切换到前台
@Override
public void onReceive(Context content, Intent intent)
{
String action=intent.getAction();
if (actionName.equals(action))
{
String msg=intent.getStringExtra("content");
Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_SHORT).show();
//后台到前台
Intent inten = new Intent("android.intent.action.MAIN");
inten.setComponent(new ComponentName(getApplicationContext().getPackageName(), Main2Activity.class.getName()));
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
| Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
getApplicationContext().startActivity(inten);
}
}
7、unity安卓程序如何保活(减小被安卓系统杀死的几率)
public class MyService extends Service
{
/** 标识服务如果被杀死之后的行为 */
int mStartMode; /** 绑定的客户端接口 */
IBinder mBinder; /** 标识是否可以使用onRebind */
boolean mAllowRebind; /** 当服务被创建时调用. */
@Override
public void onCreate() {
super.onCreate();
} /** 调用startService()启动服务时回调 */
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return ;
} /** 通过bindService()绑定到服务的客户端 */
@Override
public IBinder onBind(Intent intent) {
return null;
} /** 通过unbindService()解除所有客户端绑定时调用 */
@Override
public boolean onUnbind(Intent intent) {
return mAllowRebind;
} /** 通过bindService()将客户端绑定到服务时调用*/
@Override
public void onRebind(Intent intent) { } /** 服务不再有用且将要被销毁时调用 */
@Override
public void onDestroy() {
super.onDestroy();
}
如有错误,欢迎指正
unity与安卓通讯的一些事儿的更多相关文章
- unity调用安卓方法实现安装apk文件(androidx)
原文链接:点击打开 unity想要实现安装apk文件需要与安卓通讯,所以需要自己来实现安卓代码. 第一步先要新建一个安卓项目提供给unity来使用,我这里使用的工具是android studio4.1 ...
- UNITY 打包安卓APK
1,安装JDK.这个直接下就行了. 2,安装android sdk相关.这个比较蛋疼,官网是被墙的.有些网站的包还是需要访问墙外下载的.关键是找对那个能用的包(对我来说就是不FQ). http://p ...
- Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用
一个完整的游戏项目上线需要不断的完善优化,但是到了后期的开发不再仅仅是游戏了,它的复杂度远远大于纯粹的应用开发.首先必须要考虑的就是集成第三方SDK,支付这块渠道商已经帮你我们做好了,只需要按照文档对 ...
- Unity调用安卓Android的Toast
需求:在游戏中弹窗消息,调起安卓的Toast 项目中需要做Unity和安卓交互时,经常需要通过安卓Toast来做简单的输出,以便于测试. 方法一:Unity中,C#主导 // Unity调用安卓的土司 ...
- Unity与安卓IOS交互
记录下 安卓与Unity交互中 跳坑 找到的资料. <1>建立交互 http://blog.csdn.net/lizhengwei1989/article/details/54631 ...
- Unity调用安卓中的方法遇到的问题
最近在用U3D做一个简单的迷宫游戏,在项目中利用Unity制作游戏场景,在android中调用游戏场景,并在游戏结束后调用安卓方法,传递参数,退出游戏场景 查找网上资料,基本上Unity调用安卓的写法 ...
- Unity和安卓互调
Unity调安卓 AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); And ...
- Unity发布安卓Splash Image适应手机、平板
问题描述: Unity发布安卓应用时,遇到只能添加一张SplashImage而需要适配手机及平板不同分辨率处理 解决方法: http://blog.csdn.net/aiyan1111111/arti ...
- unity接入安卓sdk (unity调用安卓工程)
1.安装jdk 并且配置环境,这个网上资料很多,这里不说了 2.安卓开发软件eclipse集成环境版 下载地址 http://tools.android-studio.org/index.php/ad ...
随机推荐
- android handlerThread
一.handlerThread产生的背景
- 【docx4j】docx4j操作docx,实现替换内容、转换pdf、html等操作
主要是想要用此功插件操作docx,主要的操作就是操作段落等信息,另外,也想实现替换docx的内容,实现根据模板动态生成内容的效果,也想用此插件实现docx转换pdf. word的格式其实可以用xml来 ...
- pl/sql Devloper 如何查看表结构
在命令行 敲 desc 表名:
- nodejs 数据库操作,消息的发送和接收,模拟同步
var deasync = require('deasync'); //导入模板 var mysql=require('mysql'); var Stomp = require('stompjs'); ...
- ES系列五、ES6.3常用api之搜索类api
1.搜索api 1.1.routing:路由 执行搜索时,它将广播到所有索引/索引分片(副本之间的循环).可以通过提供routing参数来控制将搜索哪些分片.例如,在索引book时,路由值可以是nam ...
- 【转】通过xml处理sql语句时对小于号与大于号的处理转换
当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序 ...
- angular下载安装
1.下载安装nodejs 官方地址:https://nodejs.org/en/download/ 2.验证是否安装成功 node -v npm -v 公司内网需要设置代理 npm confi ...
- uoj#188. 【UR #13】Sanrd(Min_25筛)
题面 传送门 题解 这是一道语文题 不难看出,题目所求即为\(l\)到\(r\)中每个数的次大质因子 我们考虑\(Min\_25\)筛的过程,设 \[S(n,j)=\sum_{i=1}^nsec_p( ...
- 配置spring所需要的jar包
spring.jar是包含有完整发布的单个jar 包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到 spring-m ...
- 【功能】返回数据类型、字节长度和在内部的存储位置.DUMP(w[,x[,y[,z]]])
DUMP(w[,x[,y[,z]]]) [功能]返回数据类型.字节长度和在内部的存储位置. [参数] w为各种类型的字符串(如字符型.数值型.日期型--) x为返回位置用什么方式表达,可为:8,10, ...