android studio 手柄接入

一、关键词:android tv 手柄控制人物行走

1.Android手柄焦点控制

2.[Android] Joystick游戏手柄开发

二、关键词:android四大组件

Android四大组件、五大存储、六大布局、七大生命周期、八大基本数据类型

四大组件:Activity、BroadcastReceive、Service、Content Provider ;

五大存储: SharedPreferences、SDCard 、SQLite数据库存储数据、使用ContentProvider存储数据、IO存储 ;

六大布局 :LineartLayout 、FrameLayout 、TableLayout 、 RelativeLayout 、 AbsoluteLayout 、 GridLayout ;

七大生命周期 :onCrate 不可见不可交互、 onStart 可见不可交互 、 onResume 可见可交互 、 onPause 可见不可交互 、onStop  不可见不可交互 、 onDestroy 销毁了 、 onRestart 从不可见到可见 ;

八大基本数据类型 : short 短整型 、 int 整型 、 long 长整型 、 float 浮点型 、 char 字符型 、 boolean 布尔型 、 byte 字节型
————————————————
版权声明:本文为CSDN博主「懒笑翻」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/c_lanxiaofang/article/details/80602840

三、关键词:activity_main.xml

android开发笔记:MainActivity.java与activity_main.xml

onCreate方法主要是初次启动(指使用这个类)首先加载的方法。看清楚一个关键词:首先。也就是这个方法具有以下特点:就运行一次,而且是最先运行。

做个对比,其实就是写java练习代码里面的main方法,首次加载进入的入口就在这里。其实可以想到,开发这个SDK的人,肯定就是封装了main方法,被他封装了成在android SDK上叫做onCreate。@Override中文意思就是重写,在java里面我们继承来的,我们要使用就要重写,也就是重写嘛。覆盖掉原来的oncreate方法,我们帮他重写一个oncreate,按照我的想法去执行这个方法。//意思着我们要先调用一个对象的父对象上的函数,也就是AppCompatActivity super.onCreate(savedInstanceState);现在才讲到正轨:

MainActivity.java和activity_main.xml如何建立联系:

setContentView(R.layout.activity_main);

方法名setContentView的意思看的出来,启动内容视图“用”布局文件activity_main.xml。

四、关键词:savedInstanceState

onCreate中的savedInstanceState有何具体作用

在activity的生命周期中,只要离开了可见阶段,或者说失去了焦点,activity就很可能被进程终止了!,被KILL掉了,,这时候,就需要有种机制,能保存当时的状态,这就是savedInstanceState的作用。

当一个Activity在PAUSE时,被kill之前,它可以调用onSaveInstanceState()来保存当前activity的状态信息(在paused状态时,要被KILLED的时候)。用来保存状态信息的Bundle会同时传给两个method,即onRestoreInstanceState() and onCreate().

五、android开发中监听器的三种实现方法(OnClickListener)

Button btn2=(Button)findViewById(R.id.button2);
btn2.setOnClickListener(new MyListener());
以上放入ON create中,以下是内部类
1 class MyListener implements View.OnClickListener{
2         @Override
3         public void onClick(View v) {
4             Toast.makeText(MainActivity.this,"you have clicked Button2",Toast.LENGTH_SHORT).show();
5         }
6      }

 六、失败的教训

1.内部类不可用于Activity的这种情况,U2A沟通失败

 public mylibrary1(String appid, MyAct act) {
        this.activity = act;
        StringBuffer param = new StringBuffer();
        param.append("appid=" + appid);
        param.append(",");
        param.append("engine_mode=msc");
        SpeechUtility.createUtility(this.activity.getApplicationContext(), param.toString());
        this.mToast = Toast.makeText(this.activity, "欢迎来到智慧乐园!", Toast.LENGTH_SHORT);
        this.mToast.show();

    }
    abstract class MyAct extends Activity{
        @Override
        public boolean dispatchKeyEvent(KeyEvent event) {
            if(event.getRepeatCount() > 0){
                UnityPlayer.UnitySendMessage("Canvas","TU2A","你,按了好多次了!!!");
                return true;
            }
            return super.dispatchKeyEvent(event);
        }
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            // 当按下返回键时所执行的命令
            if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
                // 此处写你按返回键之后要执行的事件的逻辑
                UnityPlayer.UnitySendMessage("Canvas","TU2A","你,按了,UP好多次了!!!");
                return super.onKeyDown(keyCode, event);
            }
            return super.onKeyDown(keyCode, event);

        }
    }

 只有当

jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
jo1 = new AndroidJavaObject("com.unity3d.player.mylibrary1", "5b508fb6", jo);

public mylibrary1(String appid, Activity act) {
this.activity = act;
StringBuffer param = new StringBuffer();
param.append("appid=" + appid);
param.append(",");
param.append("engine_mode=msc");
SpeechUtility.createUtility(this.activity.getApplicationContext(), param.toString());
this.mToast = Toast.makeText(this.activity, "欢迎大涛、二涛来到智慧乐园!", Toast.LENGTH_SHORT);
this.mToast.show();

}
二者平级,同为android.app.Activity的类时,方可U2A沟通有效。
2.通过直接导出Activity类未成功。后增加空的Activity,重新打包,出现错误,提示:

error: invalid file path ‘C:\Users\n1781\MyApplication3\mylibrary\build\intermediates\manifests\aapt\release\AndroidManifest.xml‘.

查阅:https://blog.csdn.net/weixin_39513118/article/details/84971693的博文,删除了app下的build文件夹,果然成功!

android studio 手柄接入

上一篇:使用HBuilderX新建Uniapp项目并在不同平台上运行调试


下一篇:【移动端】移动端适配方案