2

怎样实现外部设备一键启动手机APP(无线通信方式)?

 2 years ago
source link: https://ask.csdn.net/questions/7524494
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
怎样实现外部设备一键启动手机APP(无线通信方式)?-Android-CSDN问答
liuywlw 2021-10-05 04:11
采纳率: 0%
浏览 1.1k

怎样实现外部设备一键启动手机APP(无线通信方式)?

我想实现的功能是,用外部设备跟手机无线通信。按一下外部设备的按钮,可以启动手机的某个APP。请问这个可以实现吗?怎么做呢?

13条回答 默认 最新

D狂风R 2021-10-07 10:12

嘿siri

点赞 31 评论
vigiles 2021-10-05 04:26

方案很多,实现起来简单的不多。得看应用场景。1.局域网1)手机端开一个服务,外设保持访问,按钮后提交值1,手机得到值1,启动app并复位值为0。2)树莓派或者arduino做个外设服务端供手机保持心跳访问。外设按了钮后设置值为1,手机访问到了1后外设复位为0,这样手机再次访问就会得到0。手机访问到了1,就启动本地app。2.外网,则需要中间站,手机和外设都对其保持访问。外设按钮后提交新的值,手机访问后中间站复位值。

点赞 2 评论
大白兔Exception 2021-10-06 00:36

以前写过类似的小工具,使用某些设备向手机发送短信,写一个可以拦截安卓通知的app,当短信内容符合某些特定的内容后,自动执行一系列代码,当然这一些列代码也可以是启动app。

老虎那个王 2021-10-06 02:40

IOS的快捷指令是不是可以利用

NeXT 下一代 2021-10-06 10:42

手机APP通过蓝牙的实现与控制

NeXT 下一代 2021-10-06 10:44

第五章APP的实现与控制随着移动互联网的快速崛起,手机客户端应用软件(Application,简称APP)为代表的智能终端应用的快速普及,给人们的工作和生活带来了更多的便捷,也加快了物联网的发展步伐。Android系统作为手机的主流操作系统,由于其操作性和开源性,为手机应用程序控制系统的开发提供了很大的优势,并将各类控制系统融为一体提供了可能。本部分以Android手机应用程序APP为客户端,借助蓝牙无线通信技术,智能小车作为服务器端接收手机的控制信号,并实现小车的相关动作。该设计为智能控制方式提供一种新的设计思路。系统结构图如图5-1所示:
手机APP蓝牙模块智能小车图5-1 系统结构图5.1 主要技术Java作为一种完全面向对象的语言,拥有安全、健壮、分布、可移植等多种优点。正是这些优点让Java在很多领域都有广泛的应用。从商业上的电子商务网站到安卓App,从科学应用到经济应用,如电子交易系统,从游戏到桌面应用都有Java的身影。Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。智能手机的发展自然离不开智能操作系统的不断进化,安卓作为手机操作系统的一种,因为其开放的源码特性以及营销模式迅速占领市场。5.2 安卓系统5.2.1 基本架构在安卓系统中,将操作系统的体系结构分为四层,从下到上分别为Linux内核层、系统运行库层、应用框架层和应用层。安卓体系结构如图5-2所示。

  图5-2 安卓体系结构图 (1)Linux层:安卓操作系统的底层是基于Linux Kernel 的,其功能主要是负责操作系统所具有的功能,包括很多的驱动程序,如显示驱动、相机驱动、蓝牙驱动等,正是这些驱动程序来驱动我们的硬件设备。 (2)系统运行库层:系统运行库层包括两个部分:库文件和安卓运行环境。其中库文件中主要是安卓系统会使用的一些 C/C++ 的库文件,包括桌面管理器、媒体库、 SQLite等。安卓运行环境则指的是虚拟机技术,相当于java的JDK和JVM,是运行安卓应用程序所需要的核心库。 (3)应用框架层:主要是Google发布的类库,我们学习安卓主要也是学习这一层,通过各种各样的框架才能实现我们的APP。开发过程中必须遵循框架的开发原则,框架中主要包括Activity Manager、窗口管理器、视图系统、通知管理器、电话管理器等。 (4)应用层 :应用层当然就是指我们开发的APP了,主要是使用Java语言进行开发的程序,例如音乐播发器、图片浏览器,还有大家使用的地图、通讯录等。 5.2.2 四大组件 要想学会安卓开发,首先必须熟悉安卓的四大组件,包括Activity、Service、
基恩士_扫描枪_高效条码读取解决方案
  Broadcast Receiver和Content Provider。 (1)Activity:Activity就是一个人机交互程序,简单来讲手机中的一个屏幕内容就是一个Activity,所以Activity 主要用于存放不同的显示控件,是安卓最基本的组成部分。当然一个APP中不止一个Activity。 (2)Service:Service可以理解为是没有屏幕的Activity,例如某些程序没有用户界面,只是希望在后台运行,就可以定义为一个Service。背景音乐的播放、监控程序等都可以采用这种方式。 (3)Broadcast Receiver:广播接收器没有用户界面。它可以启动一个Activity或Service来响应收到的信息,或者用Notification Manager来通知用户。 (4)Content Provider:Content Provider的提供主要是为了解决不同的应用程序之间进行数据交换的问题,将不同的应用程序的数据操作标准进行统一,并把标准表明给其他程序以方便访问,这样就能达到应用程序交互、共享数据的目的。简单来说安卓 APP 开发就是学习如何利用应用框架层里面的各种类库,遵循框架规则进行应用程序的开发。 5.3 搭建开发环境 5.3.1 安装JDK JDK是Java的核心,包含了Java的运行环境、Java工具、开发应用程序时调用的Java类库等内容,所以基于Java的开发均需要安装JDK。可以从官网上根据需要下载不同的版本进行安装。 5.3.2 配置环境变量 为了配置JDK的系统变量环境,我们需要设置三个系统变量,分别是JAVA_HOME,Path和CLASSPATH。  (1)JAVA_HOME:变量值为JDK在你电脑上的安装路径:C:\Program Files\Java\jdk1.8.0_20。创建好后则可以利用%JAVA_HOME%作为JDK安装目录的统一引用路径,目的是为了方便后面变量的设置。 (2)PATH:PATH属性已存在,可直接编辑,在原来变量后追加:  .;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin  (3)CLASSPATH:设置系统变量名为:CLASSPATH变量值为:  .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 

  5.3.3 安装Eclipse Eclipse为Java应用程序及Android开发的IDE。可以从官网下载,Eclipse不需要安装,直接解压后,打开时设置工作空间即可。 5.3.4 安装 Android SDK 为了能在Windows中开发调试安卓APP,需要为Eclipse配置Android SDK,Google 现在提供集成了ADK的Eclipse,可以直接使用,也可以单独配置。 5.4 Eclipse实现APP Android手机客户端操作界面实现小车的前进、后退、左转、右转、停止等功能。根据这个要求,本项目选择Eclipse作为开发环境,进行了APP的设计与制作。在设计过程中,首先新建项目,在项目中主要进行AndroidManifest.xml、layout文件夹下面的activity_main.xml、以及src文件夹下面的MainActivity.java的实现。 5.4.1 AndroidManifest.xml的配置 AndroidManifest.xml是一个非常重要的清单文件,每一个应用程序的根目录里都有这个功能清单文件。这个清单文件给android系统提供了关于这个应用程序运行的一些必要参数,系统在运行任何程序代码之前必须知道这些信息。一个AndroidManifest.xml中必须含有一个Application标签,这个标签声明了每一个应用程序的组件及其属性(如icon,label,permission等)。 本项目应用的是蓝牙通信,要求在客户端加上蓝牙操作权限,否则用户将无法使用安卓手机的蓝牙功能。因此,在AndroidManifest.xml文件中加入权限设置:    。同时,APP的图标显示也在这里设置:android:icon="@drawable/car",其中car图片是在layout文件夹下面的drawable-xhdpi文件夹里面。这样,AndroidManifest.xml配置完成。 5.4.2 页面布局的设计 页面布局需要配置layout文件夹下面的activity_main.xml文件,在设计过程中,页面布局选择的是相对布局(RelativeLayout)。相对布局是一个控件的位置取决于它和其他控件的关系,操作比较灵活,而且对于手机的适配型比较好,

  实用价值比较大。 本项目主要设置五个按键和一个文本显示,五个按键分别是前进、后退、停止、左转、右转,一个文本显示“组名: FIRE808”。每一个按键是一个Button,可以设置按键上要显示的内容,修改按键字体的大小及颜色,设置按键相对的位置。文本显示用到的是TextView,同样可以设置文本的要显示内容,修改文本字体的大小及颜色,设置文本相对的位置。整个APP背景的设置,在RelativeLayout层添加:android:background="@drawable/ground2" 。同样,ground2图片也是在layout文件夹下面的drawable-xhdpi文件夹里面。所有的按键是以停止按键位于界面正中心设置,具体的APP界面图如下图5-3所示:
  图5-3 APP界面图 5.4.3 MainActivity.java的实现 MainActivity.java是src根目录下的文件,是一个Android工程默认的主页面,所有程序的实现都在此文件中完成。此项目中Acrivity的生命周期分 
  为六部分:onCreate、onStart、onResume、onPause、onStop、onDestroy。一般情况下,onPause和onStop连续出现,当上一个界面的onPause失去焦点后,下一个界面才能开始加载。因此,在onPause里面只能做一些非常轻量级的回收。同理,onStop里面可以做一点稍微的回收动作。重量级的回收动作,或者各种数据的保存,要放到onDestroy里面执行。 项目实现主要是在onCreate、onResume、onPause这三个部分。onCreate主要是实现APP对小车的控制,调用onTouch等方法,实现触摸屏幕发送对应的指令,指令的内容分别为前进(0x0001)、后退(0x0002)、左转(0x0003)、右转(0x0004)、停止(0)。onResume主要是实现两者间的通信,APP按键的指令发送到蓝牙模块。因此,手机APP和蓝牙模块之间的通信需要Socket通信。Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。Socket又称套接字,在程序内部提供了与外界通信的端口,即端口通信。通过建立socket连接,可为通信双方的数据传输传提供通道。socket的主要特点有数据丢失率低,使用简单且易于移植。onPause主要是实现数据刷新,socket套接字的关闭。    


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK