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

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

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

嘿siri

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

有种东西叫做手机自动化,安装tasker软件,里面配置变量比如当收到某条短信变执行一个操作打开某款APP,很多选项可以自己配置,简单高效,在智能手机文字转语言还没流行的时候,我用这款软件给不识字的老母亲装上可以朗读复制的文字,用讯飞语言识别语音转文字,这样操作实现流畅玩智能手机高端操作。不过现在好了随便一个手机都有随选朗读啦。

做个NFC标签(7毛一个),靠近就可以拉起APP

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

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

外部设备指啥?

是可以做到的,你可以通过推送服务来做,就是我们经常使用的微信登录。你的微信只要在电脑上登录,在有效时间期限内,你不需要扫码授权登录,而是在电脑端,点一下登录按钮,手机端的微信即使不运行也能激活微信弹出确认登录界面。微信打通了IOS和Android 白名单通道,你可以看看极光推送、环信推送、信鸽推送等开放平台,是否能提供后台白名单保活服务。

蓝牙、定位、网络,除了这些还有什么

手机原来就是这么用的,直接来个手机控制电脑拉起应用呢

1.如果手机不额外安装新的软件的话,通过外部设备的蓝牙和手机蓝牙连接,需要通过标准的蓝牙多媒体协议,从设备发送蓝牙消息到手机端。目前只能做到打开多媒体、音量调节、上下曲目等动作。
2.若手机端开发一个接收消息的app出来,无线的方式有蓝牙、网络。蓝牙有Blue Socket,网络有http 等,可以自定义消息格式,在手机端解析对应的消息,然后调用对应的应用。

有一点没明白,你是要找人做,还是寻问思路自己做?

感谢大家的回复。平台规定只能采纳一个答案。所以我只能选一个最接近我要求的。希望大家能继续参与。

第五章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套接字的关闭。