随笔分类 -  Android

摘要:当要设置一个闹钟时,可以把数据放在Intent里,再用intent对象生成一个PendingIntent对象,然后用AlarmManager 来邦定PendingIntent对象设置闹钟,具体代码如下:Intent intent = new Intent(context, AlarmReceiver.class); intent.putExtra("id", alarm.getId()); intent.putExtra("weekday", getCurrentWeekday()); PendingIntent pendingIntent = Pend 阅读全文
posted @ 2012-05-25 09:20 andriod2012 阅读(529) 评论(0) 推荐(0)
摘要:最近在做一个闹钟的项目,当闹钟响起的时候需要用到自动解锁和点亮屏幕,因此记录一下解屏幕锁与点亮屏幕的代码:KeyguardManagerkm=(KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);//得到键盘锁管理器对象KeyguardLockkl=km.newKeyguardLock("unLock");//参数是LogCat里用的Tagkl.disableKeyguard();//解锁PowerManagerpm=(PowerManager)getSystemService(Context.POWER_S 阅读全文
posted @ 2012-05-16 10:57 andriod2012 阅读(346) 评论(0) 推荐(0)
摘要:最近在搞广告联盟的SDK和4.0的Launcher。目前呢广告联盟的sdk还没正式上线,正在测试,如果没有大的问题,估计会在近期上线测试。要搞4.0的launcher需要把SDK升级到4.0(当然还有ADT等),不然项目导入是会有很多的红叉(蛋都碎了),SDK升级到4.0以后发现,以前的一些完好的项目出错了(出现红叉)且以前正常运行的项目在4.0的系统上跑出现bug。sdk4.0做了很大的变动,但是又没有找到什么变更的说明文档,这对于我这种低水平的开发者而言,真的是灾难性的,以前的项目的版本适配怎么搞,蛋都没了......SDK4.0和以前版本的兼容问题需要大家认真测试。下面继续说4.0的la 阅读全文
posted @ 2012-05-11 11:11 andriod2012 阅读(599) 评论(0) 推荐(0)
摘要:最近学习了一下3D相册的代码,发现LinearGradient类可以来实现图片倒影的渐变效果(图片是网上找的,仅供参考),下面记录一下该用法:LinearGradient是实现线性渐变的效果,用法如下: Paint p=new Paint(); //生成画笔对象 LinearGradient lg=new LinearGradien(0,0,100,100,Color.RED,Color.BLUE,Shader.TileMode.MIRROR);//生成 LinearGradient 对象 参数一:为渐变起点坐标的x轴位置, 参数二 :为渐变起点坐标的y轴位置, 参数三 :为渐变终点坐标的x. 阅读全文
posted @ 2012-05-11 10:29 andriod2012 阅读(427) 评论(0) 推荐(0)
摘要:AudioTrack::setMarkerPosition函数的使用方法这两天在调查一个问题,就是想知道一段音频是什么时候播放结束的。查了些资料,知道AudioTrack类中有一个setMarkerPosition函数。在构造AudioTrack对象的时候,传一个回调函数指针,然后再通过setMarkerPosition函数设置一个响应点,当播放到这一点时,回调函数就会被执行。回调函数的类型如下:typedef void (*callback_t)(int event, void* user, void *info);开始使用了如下的一种方法: if (NULL == mAudioOut... 阅读全文
posted @ 2012-04-26 21:08 andriod2012 阅读(549) 评论(0) 推荐(0)
摘要:用C++ AudioTrack播放超短文件所谓的超短文件,就是特别短的文件。有多短?就是比min buffer还短。用过Android中AudioTrack的大虾都应该对min buffer不陌生。Java中可以通过调用函数getMinBufferSize获得。C++中可以通过调用getMinFrameCount函数,然后算的。超短文件播放有个什么问题呢,就是超短文件写进去,min buffer都没塞满。而刚开始播放的时候,audio_track_cblk_t对象中的buffer不被塞满的话是不会开始播放的。所以,导致的结果就是,刚开始几次,write和start后,根本没任何效果。然后,后面 阅读全文
posted @ 2012-04-26 21:07 andriod2012 阅读(803) 评论(0) 推荐(0)
摘要:有一周没有更新博客了,主要是因为这周没什么任务,其次呢不知道该写点什么。还是说的基础吧。言归正传,Activity有四种加载模式:(我开始不知道,后来也是看了篇博客才清楚)standardsingleTopsingleTasksingleInstance设置的位置在AndroidManifest.xml文件中activity元素的android:launchMode属性:<activity android:name="ActB" android:launchMode="singleTask"></activity>standard 阅读全文
posted @ 2012-04-26 15:01 andriod2012 阅读(168) 评论(0) 推荐(0)
摘要:转载地址:http://blog.csdn.net/chaimingkun/article/details/6894813Android 4.0 是一次重要的平台发布版,为用户和应用程序开发者增加了大量的新特性。在下面我们将讨论的所有新特性和API中,因为它将 Android 3.x 版本中广泛使用的API和全息图像主题带给了小屏幕设备,因此我们说 Android 4.0 是一次重要的平台发布版。作为一名开发者,现在你拥有了单一的平台和统一的 API 框架,使你可以开发,并通过一个APK 来发布你的应用程序,并且可以为运行相同版本 Android(Android 4.0[API级别14]或以上 阅读全文
posted @ 2012-04-20 11:14 andriod2012 阅读(4119) 评论(0) 推荐(0)
摘要:android手机客户端在上传文件时,有时候会一直失败,其可能的原因是APN的设置。wap下的成功率极低,所以在进行文件上传时最好设置下apn为net形式。下面是我在网上找的一些代码,是由wap转net的,当然net转wap稍微修改下就可以。经测试是可用的,分享一下:PS:apn的切换过程需要时间,不是立即生效。package com.android.couples; import java.util.ArrayList; import android.content.ContentResolver; import android.content.ContentValues; import.. 阅读全文
posted @ 2012-04-19 16:42 andriod2012 阅读(1162) 评论(0) 推荐(0)
摘要:最近在搞广告平台的插件,为了防止某些开发者在模拟机上刷数据,这就需要我们区分一下当前使用的是模拟机还是真机,在网上百度了一下,找到了一段代码,简单的测试了一下是可以达到我们的目的的(不过LD说这种方式不行,有漏洞),所以我先把我的代码贴一下,坐等我LD的方案。获取手机的设备编号,模拟机的是000000000000000 TelephonyManager telmgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String deviceID = telmgr.getDeviceId(); ... 阅读全文
posted @ 2012-04-18 09:26 andriod2012 阅读(666) 评论(0) 推荐(0)
摘要:1、Activity的生命周期情形一、一个单独的Activity的正常的生命过程是这样的:onCreate->onStart->onPause->onStop->onDestroy。例如:运行一个Activity,进行了一些简单操作(不涉及页面的跳转等),然后按返回键结束。情形二、有两个Activity(a和b),一开始显示a,然后由a启动b,然后在由b回到a,这时候a的生命过程应该是怎么样的呢(a被b完全遮盖)?a经历的过程为onCreate->onStart->onResume->onPause->onStop->onRestart-& 阅读全文
posted @ 2012-04-17 10:34 andriod2012 阅读(9257) 评论(4) 推荐(0)
摘要:接上一篇彩信的拦截与发送当我们的手机装上360的时候,每次拦截他都提前拦截到,为什么呢?难道还有更高的权限?经过反编译360的apk发现拦截的权限是一样的,那么这一因素可以排除了。因为我们的拦截软件装的晚?经过测试,貌似是这样,但是当我们机子重启后,发现我们又落后了,这是什么原因。。。。好吧,我忍,继续看反编译的后的apk,发现他们是开机启动的,然后在定睛一瞧,哈哈哈,开机启动的权限他使用的默认值,这我只能说:so easy。咱也来个开机启动,并且,咱权限稍微设高点就可以翻过那道小篱笆了。当然,如果已经安装360了,需要重启后我们的拦截软件才能先于360拦截到,当然了,android的手机电量 阅读全文
posted @ 2012-04-14 11:10 andriod2012 阅读(708) 评论(0) 推荐(0)
摘要:今天来看看Android中的录音数据是怎么来的。从AudioRecord开始看吧。AudioRecord中可以取得录音数据的接口是:AudioRecord::read。首先调用函数obtainBuffer取得录音数据的地址。然后用memcpy将录音数据copy出来。看样子,数据来源是obtainBuffer函数了。来看看函数AudioRecord::obtainBuffer。其主要功能就是对传入的audioBuffer进行赋值。audioBuffer是Buffer* 类型。看看Buffer类: class Buffer { public: enum { MUTE = 0... 阅读全文
posted @ 2012-04-13 17:55 andriod2012 阅读(599) 评论(0) 推荐(0)
摘要:转载地址:http://blog.csdn.net/aniuaniuaniuaniu/article/details/7225967最近几天,因为项目需要,发彩信界面不再是调用系统的界面,即不跳转到短信界面,这个功能起初感觉应该很简单,但是真正做起来后,发现其实没有想象中那么简单,刚做完项目,趁头脑清晰,先把代码写下来先:这几天为了这个项目,网上找了不少资料,大都资料都差不多,对于如何不跳用系统界面发彩信都有讲解,但是这个的前提是apn必须是wap,当如果是net时,因为连接超时而无法发送,正以内发彩信必须通过wap接入点才能发送,即使是在系统界面发彩信时,如果接入点不是wap,则会自动切换过 阅读全文
posted @ 2012-04-13 11:19 andriod2012 阅读(503) 评论(0) 推荐(0)
摘要:前段时间(已经过去两个月了....)公司让搞一下android彩信的拦截与发送,于是就在网上找了一些资料,开始研究它的实现过程。PS:需要从系统源码中扣取部分文件,大概在30个左右,不知道能不能精简,没认真看过。这里我重点说一下彩信的拦截和解析,因为彩信解析方面的资料相对较少。发送的部分我会提供一下我的参考文章,并且可能会转载一下这篇文章,我就是通过这篇文章实现的彩信发送。因为代码量比较大,所以就只贴下关键源码,并且说下流程和要注意的问题。仔细搜索一下的话网上可以找到相关的demo和资料(主要是彩信发送方面的,解析的好像没有),但是在使用时要注意,他们说的并不是全对的,某些方面给你误导了,他们 阅读全文
posted @ 2012-04-13 11:10 andriod2012 阅读(1646) 评论(0) 推荐(0)
摘要:MediaPlayer那边就不看了,从AudioTrack开始研究。1、AudioTrack::write函数调用函数obtainBuffer获取到一块buffer,然后把传入的数据copy到获取的buffer中。2、AudioTrack::obtainBuffer函数该函数的主要功能就是对传入的audioBuffer进行赋值。看看audioBuffer的类型:class Buffer { public: enum { MUTE = 0x00000001 }; uint32_t flags; int channelCount; int ... 阅读全文
posted @ 2012-04-11 22:32 andriod2012 阅读(3464) 评论(0) 推荐(0)
摘要:使用MODE_STATIC模式的AudioTrack时,遇到了播放不正常的问题。使用比较短的文件,发现开始几次,声音都没出来,到最后一次,感觉是把前面几次积累的声音一次播放出来了。后来查了下资料,发现使用MODE_STATIC模式的AudioTrack的方法不对。正确使用的方法如下:... if (NULL == mAudioOut) { ... mAudioOut = new AudioTrack(AudioSystem::TTS, VP_WAVEFILE_SAMPLERATE, AudioSystem::PCM_16_BIT, AudioSystem::CHANNEL... 阅读全文
posted @ 2012-04-11 17:47 andriod2012 阅读(1267) 评论(0) 推荐(0)
摘要:在使用android手机的时候,尤其是在操作软件设置时,我们经常见到这样的界面:这是怎么来实现的的呢?其实android已经提供了相应的类和方法,当进行简单数据存储时(比如:软件配置参数)android推荐使用Preferences,当然如果想提供操作界面的话就要用到PreferencesActivity。我这里先做个小例子对来简单说明一下使用方法,由于没做准备,可能讲的不系统,以后补上。首先:新建一个android工程,在其res文件夹下新建一个xml文件夹,用来存储我们的PreferencesActivity需要展示的界面。然后在xml文件夹下新建一个xml文件,名字随意去,这里我建的名字 阅读全文
posted @ 2012-04-11 11:39 andriod2012 阅读(1906) 评论(0) 推荐(0)
摘要:最近在搞广告平台的一些东西,看了一下别的广告平台的jar包,基本上都会有一个Activity用来显示web网页,用到了一个用来显示网页的组件--WebView。但是其网页的加载进度就不受我们控制了,所以当网页数据很多时就可能会很慢才会显示,这样的用户体验不好,如果能够有一个进度提示就好些了,在网上搜到了一篇博文,用来解决此问题。所以发出来供大家参考。当然了这篇博文其实相当于转载,因为我没怎么添加新的内容,惭愧啊。首先贴上我的效果图,如下:加载完成后的图片:代码很少,基本是一个方法的事,具体如下:import android.app.Activity;import android.app.Pro 阅读全文
posted @ 2012-04-10 09:30 andriod2012 阅读(715) 评论(0) 推荐(0)
摘要:BroadcastReceiver 用于异步接收广播Intent。主要有两大类,用于接收广播的:正常广播 Normal broadcasts(用 Context.sendBroadcast()发送)是完全异步的。它们都运行在一个未定义的顺序,通常是在同一时间。这样会更有效,但意味着receiver不能包含所要使用的结果或中止的API。 有序广播 Ordered broadcasts(用 Context.sendOrderedBroadcast()发送)每次被发送到一个receiver。所谓有序,就是每个receiver执行后可以传播到下一个receiver,也可以完全中止传播——不传播给其他r 阅读全文
posted @ 2012-04-09 09:52 andriod2012 阅读(182) 评论(0) 推荐(0)