摘要:
播放声音可以用MediaPlayer和AudioTrack,两者都提供了java API供应用开发者使用。虽然都可以播放声音,但两者还是有很大的区别的。 其中最大的区别是MediaPlayer可以播放多种格式的声音文件,例如MP3,AAC,WAV,OGG,MIDI等。MediaPlayer会在framework层创建对应的音频解码器。 而AudioTrack只能播放已经解码的PCM流,如果是文件的话只支持wav格式的音频文件,因为wav格式的音频文件大部分都是PCM流。AudioTrack不创建解码器,所以只能播放不需要解码的wav文件。 当然两者之间还是有紧密的联系的,MediaPlayer
阅读全文
posted @ 2014-01-15 16:50
MMLoveMeMM
阅读(788)
推荐(0)
摘要:
前言 Android提供了常见的音频、视频的编码、解码机制。借助于多媒体类MediaPlayer的支持,开发人员可以很方便在在应用中播放音频、视频。本篇博客主要讲解在Android平台下如何播放一个音频文件。 本篇博客主要内容如下:MediaPlayerMediaPlayer的音频源使用MediaPlayer播放音乐MediaPlayer使用技巧Demo--一个简单的MP3播放器MediaPlayer 上面提到过,Android下对于音频、视频的支持均需要使用到MediaPlayer,它主要用来控制Android下播放文件或流的类。MediaPlayer处于Android多媒体包下"
阅读全文
posted @ 2014-01-15 01:27
MMLoveMeMM
阅读(1054)
推荐(0)
摘要:
随着国际化的深入,越来越多的网站提供多语言版本给不同国家的用户。最近做的一个项目也涉及到这块,顺便做个总结。一、通常实现方法有两种:1、采用多语言模板,通过程序渲染不同语言版本的模板。比如:简体版: 文件名.zh_CN.后缀繁体版: 文件名.zh_TW.后缀英文版: 文件名.en_US后缀优点:(1) 不同语言版本有各自的模板,维护量大,但维护简单。甚至不同版本的模板在显示风格上都可以不同。缺点:(1) 同一商业逻辑的页面,需要维护多套模板,有重复工作。2、采用同一模板,利用ResourceBundle配置多语言resource文件,实现网页上不同语言版本的显示。优点:(1) 同一商业逻辑的页
阅读全文
posted @ 2013-12-30 00:44
MMLoveMeMM
阅读(3891)
推荐(0)
摘要:
在创业公司,什么东西都要自己搞定,除了开发android系统和研究内核,还要自己来搭建一个代码管理服务器。其实搭建一个服务器非常简单,尤其只需要在局域网内搭建,网上已经提供好了我们需要的一切。服务器的搭建首先我们需要一个装有linux系统的计算机充当服务器,我这里是一台ubuntu12.04的系统。里面默认安装了perl和bash作为shell。然后需要安装git-core,openssh-server等必备软件,在ubuntu 安装这些软件比较方便。sudo apt-get install git-core openssh-server创建一个叫做git的用户。创建步骤和可能出现的问题可以参
阅读全文
posted @ 2013-12-30 00:32
MMLoveMeMM
阅读(6818)
推荐(0)
摘要:
公司最近准备启用git来管理公司项目,在CTO张头的带领下,历经挫折,终于完成了git服务器的配置工作。在使用Git之前,大家首先要明确几个概念:git服务器、git客户端和git服务器管理员。本文中使用ubuntu当作git服务器,pcA和pcB分别作为服务器管理员和git客户端。通常,git服务器上需要安装OpenSSH Server、Git、Gitosis和Apache2(如果想使用Gitweb的话)。 本文将主要介绍git服务端和管理员相关的一些配置方法,客户端及管理员的git操作方法将在另一篇文章中作详细介绍。(一) Git服务端1.请使用apt-get update和apt-ge.
阅读全文
posted @ 2013-12-30 00:30
MMLoveMeMM
阅读(355)
推荐(0)
摘要:
终端快捷键:Ctrl+Alt+TUbuntu Linux有一个与众不同的特点,那就是初次使用时,你无法作为root来登录系统,为什么会这样?这就要从系统的安装说起。对于其他Linux系统来说,一般在安装过程就设定root密码,这样用户就能用它登录root帐户或使用su命令转换到超级用户身份。与之相反,Ubuntu默认安装时,并没有给root用户设置口令,也没有启用root帐户。问题是要想作为root用户来运行命令该怎么办呢?没关系,我们可以使用sudo命令达此目的。 sudo 是linux下常用的允许普通用户使用超级用户权限的工具,该命令为管理员提供了一种细颗粒度的访问控制方法,通过它人们既可
阅读全文
posted @ 2013-12-30 00:24
MMLoveMeMM
阅读(305)
推荐(0)
摘要:
PS:今天给开发的同事搭建一个公网的SVN Server,google一下,发现下面这篇最详细,就记录下来,重新排版一下。顺便根据自己的使用经验,补充了几个细节和总结。本文配置是基于CentOS 5.x的,但一样适用于其他Linux发行版!SVN简介和工作原理subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linux和windows,但较多安装在linux下。svn服务器有两种运行方式:独立服务器和借助于apache。 svn://或http://svn客户端tortoisesvnsv
阅读全文
posted @ 2013-12-30 00:22
MMLoveMeMM
阅读(409)
推荐(0)
摘要:
如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。 本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。 本教程分为以下几个部门,不仅仅是快速入门,最后我们还有一些高级功能的说明,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。软件下载服务器和客户端安装建立版本库(Repository) 配置用户
阅读全文
posted @ 2013-12-30 00:19
MMLoveMeMM
阅读(218)
推荐(0)
摘要:
1.1 浏览器内核差别1.2. Safari和Chrome浏览器简介Safari和Chrome,一个是苹果公司MAC OS系统的浏览器,一个是Google开发的浏览器,它们都使用了同样的内核webkit,关于webkit,有如下简介。 WebKit 是一个开源浏览器网页排版引擎,与之相应的引擎有Gecko(Mozilla,Firefox 等使用的排版引擎)和Trident(也称为MSHTML,IE 使用的排版引擎)。同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序。WebKit 所包含的..
阅读全文
posted @ 2013-12-26 23:06
MMLoveMeMM
阅读(480)
推荐(0)
摘要:
Javascript 多浏览器兼容一、document.formName.item(”itemName”) 问题 问题说明:IE下,可以使用 document.formName.item(”itemName”) 或 document.formName.elements["elementName"];Firefox下,只能使用document.formName.elements["elementName"]。 解决方法:统一使用document.formName.elements["elementName"]。 二、集合类对象问题 问题
阅读全文
posted @ 2013-12-26 21:50
MMLoveMeMM
阅读(152)
推荐(0)
摘要:
一. 摘要 虽然已经在Android系统工作了一段时间, 但是每次需要重新setup环境的时候,都需要花一点时间, 所以就想借着这次在ubuntu 12.04 64bits系统上重新安装的机会, 将安装过程记录下来, 下次照着做就行了, 或者将所有步骤做成一个脚本, 直接运行, 即可以轻松的将环境设置好。 本文还包括如何编译Android系统源代码, 其中包含kernel部分的编译和上层系统的编译, 本文所使用的环境是在Ubuntu 12.04 64bits系统上, 所用的Android系统的版本号是4.2.1_r1, 编译后的image在Galaxy Nexus上可以运行成功。二. 环境设置
阅读全文
posted @ 2013-12-25 01:33
MMLoveMeMM
阅读(773)
推荐(0)
摘要:
使用Java操作文本文件的方法详解 摘要: 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中 write(char[] ch,int off,intlength),flush()和close()方法为抽象方法,Reader中read(char[] ch,int off,int length)和close()方法是抽象方法。子类应该分别实现他们。 当我们读写文本文件的时候,采用Reader是非常方便的,比如File.
阅读全文
posted @ 2013-12-18 19:04
MMLoveMeMM
阅读(202)
推荐(0)
摘要:
首先看下效果图下面讲一下具体的实现:1.修改系统默认的Dialog样式(风格、主题)2.自定义Dialog布局文件3.可以自己封装一个类,继承自Dialog或者直接使用Dialog类来实现,为了方便以后重复使用,建议自己封装一个Dialog类=====================================================第一步: 我们知道Android定义个控件或View的样式都是通过定义其style来实现的,查看Android框架中的主题文件,在源码中的路径:/frameworks/base/core/res/res/values/themes.xml,我们可以看.
阅读全文
posted @ 2013-12-18 00:46
MMLoveMeMM
阅读(377)
推荐(0)
摘要:
下面的demo实现从服务器上面下载文件的功能:package mypack;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class
阅读全文
posted @ 2013-12-17 00:28
MMLoveMeMM
阅读(459)
推荐(0)
摘要:
先贴上三个servlet java类 :package mypack;import java.io.IOException;import javax.servlet.GenericServlet;import javax.servlet.RequestDispatcher;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.ser
阅读全文
posted @ 2013-12-16 01:03
MMLoveMeMM
阅读(19813)
推荐(1)
摘要:
Servlet eroor:HTTP method GET is not supported by this URL错误提示:type: Status reportmessage: HTTP method GET is not supported by this URLdescription: The specified HTTP method is not allowed for the requested resource (HTTP method GET is not supported by this URL).原因:1,继承自HttpServlet的Servlet没有重写对于请求和响
阅读全文
posted @ 2013-12-16 00:33
MMLoveMeMM
阅读(386)
推荐(0)
摘要:
下面给一个Android 设备LCD触控识别度测试,也是过去看过美国一个客户的设备是如此检测,这里给出一个近似的demo:里面需要注意两个地方:其中 40是设置绘制框型的边长,这个可以自行设置;另外一个72是Y轴的校验值,即去掉标题栏,如果隐藏标题栏,就不需要将当前获得的值mGetY减去72了.再就是android:左右是X方向,上下是Y方向,默认左上角是坐标[0,0],不设置相对坐标就不可能又负值.package com.example.testsurfaceviewactivity;import android.annotation.SuppressLint;import android.
阅读全文
posted @ 2013-12-15 00:55
MMLoveMeMM
阅读(441)
推荐(0)
摘要:
引自:http://wanghongxu.iteye.com/blog/539806http://jxdwuao.iteye.com/blog/603003Eclipse使用Svn插件,有时候会想要更改现有的用户,在网上搜罗了一下,总结以下的内容:在Xp和Win7下修改方法不同Xp下:1. 查看你的Eclipse 中使用的是什么SVN Interfacewindows > preference > Team > SVN #SVN Interface2. 如果是用的JavaHL, 找到以下目录并删除auth目录下的文件.C:"Documents and Setting
阅读全文
posted @ 2013-12-13 18:08
MMLoveMeMM
阅读(221)
推荐(0)
摘要:
seek_drawable.xml seek_thumb.xml
阅读全文
posted @ 2013-12-13 01:23
MMLoveMeMM
阅读(2714)
推荐(0)
摘要:
package com.example.testsurfaceviewactivity;import java.lang.reflect.Field;import java.util.ArrayList;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import an
阅读全文
posted @ 2013-12-13 01:13
MMLoveMeMM
阅读(309)
推荐(0)
摘要:
静态注册和动态注册其中的一个区别是 : 动态注册需要所在的activity或者service被创建后才能够被注册,静态注册不需要activity和service启动就可以注册,并且即使activity和service没有启动,也可以接受广播,但是动态却不行.该文解决的问题点是,在一个没有启动的activity或者service中存在一个继承BroadcastReceiver内中内类,这个类将如何静态注册.给出一个demo:启动的第一个activity类:package com.example.androidbroadcastdemo;import android.os.Bundle;impor
阅读全文
posted @ 2013-12-05 21:10
MMLoveMeMM
阅读(835)
推荐(0)
摘要:
Android 更新UI的两种方法——handler和runOnUiThread()在Android开发过程中,常需要更新界面的UI。而更新UI是要主线程来更新的,即UI线程更新。如果在主线线程之外的线程中直接更新页面显示常会报错。抛出异常:android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.只有原始创建这个视图层次(view hierachy)的线程才能修改它的视图(view)话不多说,贴
阅读全文
posted @ 2013-11-30 17:52
MMLoveMeMM
阅读(401)
推荐(0)
摘要:
synchronized 关键字,它包括两种用法:synchronized 方法和 synchronized 块。1. synchronized 方法:通过在方法声明中加入 synchronized关键字来声明 synchronized 方法。如:public synchronized void accessVal(int newVal);synchronized 方法控制对类成员变量的访问:每个类实例对应一把锁,每个 synchronized 方法都必须获得调用该方法的类实例的锁方能执行,否则所属线程阻塞,方法一旦执行,就独占该锁,直到从该方法返回时才将锁释放,此后被阻塞的线程方能获得该锁,
阅读全文
posted @ 2013-11-30 15:04
MMLoveMeMM
阅读(389)
推荐(0)
摘要:
(1) 调用android 的API: NetworkInterface. getHardwareAddress ()该API的level为9,只有android 2.3以上才有该接口geMacFromInetAddress /** * 通过InetAddress获取mac地址 * @attention InetAddress * @return Mac Address */ private static String geMacFromInetAddress(Context context){ String mResult = null; try { f...
阅读全文
posted @ 2013-11-27 00:50
MMLoveMeMM
阅读(664)
推荐(0)
摘要:
简单地介绍了AudioRecord和AudioTrack的使用,这次就结合SurfaceView实现一个Android版的手机模拟信号示波器(PS:以前也讲过J2ME版的手机示波器)。最近物联网炒得很火,作为手机软件开发者,如何在不修改手机硬件电路的前提下实现与第三方传感器结合呢?麦克风就是一个很好的ADC接口,通过麦克风与第三方传感器结合,再在软件里对模拟信号做相应的处理,就可以提供更丰富的传感化应用。先来看看本文程序运行的效果图(屏幕录像速度较慢,真机实际运行起来会更加流畅):本文程序使用8000hz的采样率,对X轴方向绘图的实时性要求较高,如果不降低X轴的分辨率,程序的实时性较差,因此程
阅读全文
posted @ 2013-11-27 00:44
MMLoveMeMM
阅读(2872)
推荐(0)
摘要:
Android可以通过MediaRecorder和AudioRecord这两个工具来实现录音,MediaRecorder直接把麦克风的数据存到文件,并且能够直接进行编码(如AMR,MP3等),而AudioRecord则是读取麦克风的音频流。本文使用AudioRecord读取音频流,使用AudioTrack播放音频流,通过“边读边播放”以及增大音量的方式来实现一个简单的助听器程序。PS:由于目前的Android模拟器还不支持AudioRecord,因此本程序需要编译之后放到真机运行。先贴出本文程序运行截图:PS:程序音量调节只是程序内部调节音量而已,要调到最大音量还需要手动设置系统音量。使用Au
阅读全文
posted @ 2013-11-27 00:34
MMLoveMeMM
阅读(3689)
推荐(0)
摘要:
Android提供了两个API用于实现录音功能:android.media.AudioRecord、android.media.MediaRecorder。 网上有很多谈论这两个类的资料。现在大致总结下:1、AudioRecord主要是实现边录边播(AudioRecord+AudioTrack)以及对音频的实时处理(如会说话的汤姆猫、语音)优点:语音的实时处理,可以用代码实现各种音频的封装缺点:输出是PCM语音数据,如果保存成音频文件,是不能够被播放器播放的,所以必须先写代码实现数据编码以及压缩示例:使用AudioRecord类录音,并实现WAV格式封装。录音20s,输出的音频文件大概为3.5
阅读全文
posted @ 2013-11-27 00:27
MMLoveMeMM
阅读(29979)
推荐(0)
摘要:
Android多媒体框架包含获取和编码多种音频格式的支持,所以你可以轻松地把音频合并到你的应用中.如果设备支持,你可以使用MediaRecorderAPIs进行录音.本章向你展示如何写一个应用从设备上的microphone获取音频,然后保存并回放.注:Android模拟器不具有录音的能力,但是真实的设备一般都具有此功能.执行音频获取从设备获取音频比回放音频或视频要复杂一点,但是也还算简单:创建一个android.media.MediaRecorder的新实例.使用MediaRecorder.setAudioSource()设置音频源,一般要使用MediaRecorder.AudioSource
阅读全文
posted @ 2013-11-27 00:20
MMLoveMeMM
阅读(279)
推荐(0)
摘要:
Android AudioManager获取媒体焦点 分类: Android 2013-04-17 14:15 557人阅读 评论(1) 收藏 举报 平时开发的时候 遇到这样的一个问题: 我开着系统的音乐播放器,我在我的应用程序里面播一段音乐 两个音乐会同时播放通过在stackoverflow查资料后才发行我们得自己音乐需要获取焦点,在我们音乐播完了以后释放掉焦点。这样系统的歌曲会继续播放下面介绍一下步骤1.获取AudioManager对象AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);2. 注册
阅读全文
posted @ 2013-11-26 17:17
MMLoveMeMM
阅读(722)
推荐(0)
摘要:
AIDL是用来定义两个进程之间的通信接口,语法简单,相当于(类似)java的接口写法: : AIDL定义接口的源代码必须以.aidl为文件扩展名; : 数据类型,除了基本类型,String,List,Map,CharSequence之外,其他的都要导入相关包;实现这种接口的是aidl.exe,这个exe放在android SDK下.下面给出一个demo:先写AIDL文件:eclipse工程下直接新建一个文本ICat.aidl文件package com.example.androidaidlserivcedemo0;interface ICat{ String getColor(); ...
阅读全文
posted @ 2013-11-24 23:48
MMLoveMeMM
阅读(545)
推荐(0)
摘要:
完成service服务需要如下几步: : 重写Serivce子类,即写一个继承Service类(extends Service);public class MyService extends Service{...} : 在AndroidMainfest.xml文件中添加service,基本上和Activity差不多: : 如果是不介意activity结束后,service仍然继续运行,只需要使用:....final Intent intent=new Intent(); intent...
阅读全文
posted @ 2013-11-24 22:58
MMLoveMeMM
阅读(436)
推荐(0)
摘要:
Parcelable接口的使用什么是Parcelable ? Parcelable,定义了将数据写入Parcel,和从Parcel中读出的接口。一个实体(用类来表示),如果需要封装到消息中去,就必须实现这一接口,实现了这一接口,该实体就成为“可打包的”了。Parcelable 传递对象 Android序列化对象主要有两种方法: 1.实现Serializable接口,实现Serializable接口是JavaSE本身就支持的; 2.实现Parcelable接口,Parcelable是Android特有的功能,效率比实现Serializable接口高,像用于Intent数据传递也都支持,而且还可以
阅读全文
posted @ 2013-11-24 18:15
MMLoveMeMM
阅读(311)
推荐(0)
摘要:
代码的思路大致是这样的:首先有一个Service,当然这个Service在主Activity中启动,在Service中注册一个receiver,该receiver 监听系统的Screen Off(即屏幕关闭) 事件,当然在Service中要关闭原有的屏保(关闭系统屏保需要再配置文件中获得权限)。然后在onReceive方法中启动自己的屏保Activity。有一点需要注意到得是Screen off 事件不能在AndroidManifest.xml配置文件中注册。 Service: 这两个变量主要是为了关闭系统原有屏保,下面将用到KeyguardManager mKeyguardManag...
阅读全文
posted @ 2013-11-22 20:01
MMLoveMeMM
阅读(1961)
推荐(0)
摘要:
要想发布Java web页面需要以下几个步骤: : 安装java虚拟机,并且配置环境变量; : 安装tomcat服务器(一般用非安装版),并且配置环境变量,初学可以不需要设置其具体配置参数; : 下载j2ee版eclipse,网上很多推荐myeclipse(这个没用过,不清楚是否好用),j2ee eclipse仅仅用于写code方便的,和自动生成class文件的,不需要其运行. : 下面用eclipse编写java web工程所需要的html,jsp,servlet的java文件,编写完成后,在将其相关文件发布的tomcat的webapps文件夹下:eclipse新建动态网页工程,下面的文件都
阅读全文
posted @ 2013-11-21 00:28
MMLoveMeMM
阅读(401)
推荐(0)
摘要:
busybox ifconfig eth0 up //启动eth0设备busybox ifconfig eth0 192.168.1.2 //更改ip地址netcfg eth0 dhcpbusybox route add default gw 192.168.0.1 netmask 0.0.0.0 eth0/system/bin/setprop net.dns1 (ip address)命令:ifconfig补充说明 补充说明:ifconfig可设置网络设备的状态,或是显示目前的设置。参数 参 数: [网络设备] 网络设备的名称。 down 关闭指定的网络设备。 up 启动指定...
阅读全文
posted @ 2013-11-20 18:05
MMLoveMeMM
阅读(6940)
推荐(0)
摘要:
方法一:(java习惯,在android平台开发时这样是不行的,因为它违背了单线程模型)刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题new Thread( new Runnable() { public void run() { myView.invalidate(); } }).start();可以实现功能,刷新UI界面。但是这样是不行的,因为它违背了单线程模型:Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。方法二:(Thread+Handl...
阅读全文
posted @ 2013-11-20 16:15
MMLoveMeMM
阅读(161)
推荐(0)
摘要:
Handler主要接受子线程数据,并用此数据配合主线程更新UI。Handler的作用:(1)发送和处理消息(Message)。(2)发送和处理Runnable对象。 对于Android里的消息处理,涉及到Handler,Looper,Message,MessageQueue等概念,先理顺这些概念。Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进.
阅读全文
posted @ 2013-11-20 16:04
MMLoveMeMM
阅读(184)
推荐(0)
摘要:
前提: 1. 使用真机测试 2. 测试前请蓝牙配对好手机与PC机蓝牙适配器(所以你需要一个蓝牙适配器插入PC USB口)demo测试效果: 当手机左右摇摆时将数据传递到PC端,打印出来。(android重力感应)PC服务端代码:import java.io.IOException;import java.io.InputStream;import javax.microedition.io.Connector;import javax.microedition.io.StreamConnection;import javax.microedition.io.StreamConnectionNo
阅读全文
posted @ 2013-11-18 13:15
MMLoveMeMM
阅读(1703)
推荐(0)
摘要:
我们知道,Android从2.0版本后的sdk开始才支持蓝牙开发,现在一般都不用蓝牙,而且模拟器不支持,测试至少需要两部手机,所以制约了很多技术人员的开发,Demo在国内更是少之又少。技术来源于网络,也要归属于网络,所以此次放置上来供大家共享学习。 由于我这里只有一台支持android的手机(google nexus s),但我的电脑是支持蓝牙的,所以就利用电脑和手机进行蓝牙通信,利用电脑测试借助于小工具:串口调试小助手。上网下载。 原理:android的蓝牙通信类似java的socket编程,一端发送,一端接收,发送点相当于服务器,接收端相当于客户端,也就是说,如果有类库可以帮我们产生服务器
阅读全文
posted @ 2013-11-18 13:05
MMLoveMeMM
阅读(1466)
推荐(0)
摘要:
转载请注明出处,谢谢http://blog.csdn.net/metalseed/article/details/7988945 by---MetalSeedAndroid蓝牙操作:与蓝牙串口模块通信,或其他蓝牙设备通信。初涉android的蓝牙操作,按照固定MAC地址连接获取Device时,程序始终是异常终止,查了好多天代码都没查出原因。今天改了一下API版本,突然就成功连接了。总结之后发现果然是个坑爹之极的错误。为了这种错误拼命查原因浪费大把时间是非常不值得的,但是问题不解决更是揪心。可惜我百度了那么多,都没有给出确切原因。今天特此mark,希望后来者遇到这个问题的时候能轻松解决。下面..
阅读全文
posted @ 2013-11-18 12:36
MMLoveMeMM
阅读(510)
推荐(0)