10月15
         在前面的两篇日志中我们提到了有关Android平台蓝牙的配对、发现、启用等操作,本文开始通过BluetoothSocket类建立有关蓝牙通讯的套接字。从Android 2.0开始支持这一特性,蓝牙和LAN一样通过MAC地址来识别远程设备,建立完通讯连接RFCOMM通道后以输入、输出流方式通讯。

  一、连接设备

  蓝牙通讯分为server服务器端和client客户端,它们之间使用BluetoothSocket 类的不同方法来获取数据,

  1. 作为服务器

  如果一个设备需要和两个或多个设备连接时,就需要作为一个server来传输,在android中提供了BluetoothServerSocket类来处理用户发来的信息,服务器端套接字在接受(accepted) 一个客户发来的BluetoothSocket时作出相应的响应。示例代码如下:

  private class AcceptThread extends Thread {
  private final BluetoothServerSocket cwjServerSocket;
  public AcceptThread() {
  BluetoothServerSocket tmp = null; //使用一个临时对象代替,因为cwjServerSocket定义为final
  try {
  tmp = myAdapter.listenUsingRfcommWithServiceRecord(NAME, CWJ_UUID); //服务仅监听
  } catch (IOException e) { }
  cwjServerSocket = tmp;
  }
10月15
public class ScreenTest extends Activity {    
        
    class SmsContent extends ContentObserver{    
        private Cursor cursor = null;    
        public SmsContent(Handler handler) {    
            super(handler);    
        }    
            
        /**  
         * @Description 当短信表发送改变时,调用该方法    
         *              需要两种权限  
         *              android.permission.READ_SMS读取短信  
         *              android.permission.WRITE_SMS写短信  
         * @Author Snake  
         * @Date 2010-10-12  
         */  
        @Override  
        public void onChange(boolean selfChange) {    
            // TODO Auto-generated method stub    
            super.onChange(selfChange);    
            //读取收件箱中指定号码的短信    
            cursor = managedQuery(Uri.parse("content://sms/inbox"), new String[]{"_id", "address", "read"}, " address=? and read=?", new String[]{"12345678901", "0"}, "date desc");
10月15
1.查看是否有存储卡插入
String status=Environment.getExternalStorageState();
if(status.equals(Enviroment.MEDIA_MOUNTED))
{
   说明有SD卡插入
}
2.让某个Activity透明

OnCreate中不设Layout

this.setTheme(R.style.Theme_Transparent);

以下是Theme_Transparent的定义(注意transparent_bg是一副透明的图片)

3.在屏幕元素中设置句柄
使用Activity.findViewById来取得屏幕上的元素的句柄. 使用该句柄您可以设置或获取任何该对象外露的值.
TextView msgTextView = (TextView)findViewById(R.id.msg);
   msgTextView.setText(R.string.push_me);

4:发送短信

            String body=”this is mms demo”;

           Intent mmsintent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(”smsto”, number, null));
           mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body);
           mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, true);
           mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, true);
            startActivity(mmsintent);
10月15
Android 多个APK共享数据(Shared User ID):

Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux 用户
(Android 系统是基于Linux)的.
所以不同APK(用户)间互相访问数据默认是禁止的.
但是它也提供了2种APK间共享数据的形式:
1. Share Preference. / Content Provider
APK可以指定接口和数据给任何其他APK读取. 需要自己实现接口和Share的数据.
本文对于这个不做详细解释

2. Shared User id
通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中.所以默认就是
可以互相访问任意数据. 也可以配置成运行成不同的进程, 同时可以访问其他APK的数据目录下的
数据库和文件.就像访问本程序的数据一样.
比如某个公司开发了多个Android 程序, 那么可以把数据,图片等资源集中放到APK  A中去. 然后
这个公司的所有APK都使用同一个User ID, 那么所有的资源都可以从APK A中读取.
10月15

内存溢出的解决办法

14:26编程杂谈  From: 本站原创
         昨天在模拟器上给gallery放入图片的时候,出现java.lang.OutOfMemoryError: bitmap size exceeds VM budget 异常,图像大小超过了RAM内存。
      模拟器RAM比较小,只有8M内存,当我放入的大量的图片(每个100多K左右),就出现上面的原因。由于每张图片先前是压缩的情况。放入到Bitmap的时候,大小会变大,导致超出RAM内存,具体解决办法如下:

                //解决加载图片 内存溢出的问题
                //Options 只保存图片尺寸大小,不保存图片到内存
                BitmapFactory.Options opts = new BitmapFactory.Options();
                //缩放的比例,缩放是很难按准备的比例进行缩放的,其值表明缩放的倍数,SDK中建议其值是2的指数值,值越大会导致图片不清晰
                opts.inSampleSize = 4;
                Bitmap bmp = null;
                bmp = BitmapFactory.decodeResource(getResources(), mImageIds[position],opts);                              
                ...              
                //回收
                bmp.recycle();

通过上面的方式解决了,但是这并不是最完美的解决方式。
10月15

JAVA的反射机制

14:20编程杂谈  From: 本站原创
反射:
Class c = Class.forName ("java.lang.Integer");

这条语句得到一个 Integer类的类对象。还有另一种方法,如下面的语句:
Class c = Integer.class;

或者
Class c = Integer.TYPE;

它们可获得基本类型的类信息。其中后一种方法中访问的是基本类型的封装类 (如 Integer) 中预先定义好的 TYPE 字段。
第二步是调用诸如 getDeclaredMethods 的方法,以取得该类中定义的所有方法的列表。
一旦取得这个信息,就可以进行第三步了。
第三步是使用 reflection API 来操作这些信息,如下面这段代码:
Tags: , ,
10月15
dllhost.exe进程占用CPU使用率99%,这个dllhost.exe进程是什么进程?是不是病毒呢?

下面的是dllhost.exe微软的,咱们看到的可能是病毒冒充的。

进程文件:dllhost或者dllhost.exe

进程名称:MicrosoftDCOMDLLHostProcess

描述:
dllhost.exe是微软Windows操作系统的一部分。dllhost.exe用于管理DLL应用。这个程序对你系统的正常运行是非常重要的。

出品者:MicrosoftCorp.
属于:MicrosoftWindowsOperatingSystem

系统进程:是
后台程序:是
使用网络:否
硬件相关:否
常见错误:未知N/A
内存使用:未知N/A
安全等级(0-5):0
间谍软件:否
广告软件:否
病毒:否
木马:否

看清楚再删除~首先找到这个文件看一下版本信息和公司名称!免得删了以后自己哭!
下面是在baidu找到的查杀方法。
10月15
  对于Linux来讲它的树型结构与Windows不同,Windows可以有多个分区,每个分区都有根,但Linux 只有一个根,其他的所有文件、目录或硬盘分区、软盘、光盘、u 盘都必须mount(挂载)到Linux 根下的一个目录中才能被访问和使用,mount 命令以及u 盘和其他硬盘分区如何挂载以后再讲,这里先让大家对根目录下的常见系统目录用途有个直观的了解。

  /bin 用于存放普通用户可执行的命令。

  /boot 用于存放Linux 启动所必需的文件,即我们建立的boot 分区的内容。

  /dev 用于存放系统的设备文件。

  /etc 用于存放系统的各种配置文件。

  /home 用于存放系统各个普通用户的主目录。

  /lib 用于存放系统共享库文件。

  /lost+found 文件系统损坏后找回的文件存放目录。

  /media Fedora用来挂载光盘、u盘等文件系统的目录。

  /misc 用来挂载NFS 共享目录。
10月15

为您学习Linux指明方向

10:45学习心得  From: 本站原创
  我们学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。

  学习效率,掌握程度,熟悉操作是日常学习Linux中的三大法宝。以下是作者学习Linux的一些个人经验,供参考:

  1,应对Linux的发展历史和特点有所了解,Linux是抢占式多任务多用户操作系统,Linux最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具。

  2,熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种:

  硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区,在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。

  3,掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。
10月15

fedora挂载Win 分区

10:42电脑技术  From: 本站原创
在fedora core6 linux下挂载Win 分区

1、fat32分区自动挂载
$su #切换成root用户
#mkdir /mnt/C #创建挂载C盘的目录
#gedit /etc/fstab & #编辑磁盘挂载配置文件
在打开的文本编辑器中,添加下面这行:
/dev/hda1 /mnt/C vfat rw,iocharset=utf8 0 0
保存并退出文件编辑器。
这样下回启动FC6时,就会自动挂载c:盘了。
其他fat32分区照此操作。

2、手动挂载fat32分区
$su
#mkdir /mnt/D
#mount -o iocharset=utf8 /dev/hda5 /mnt/D

3、ntfs分区的挂载
去http://www.linux-ntfs.org 下载内核对应的内核补丁吧。由于我这里暂时连接不上该站,所以本小节内容暂略,下次补上。

Tags: , , ,
分页: 42/67 第一页 上页 37 38 39 40 41 42 43 44 45 46 下页 最后页 [ 显示模式: 摘要 | 列表 ]