展开

关键词

Android Contacts(一)—— 读取联系人

Introduction To Android ContactsLearn to work with the Android contacts database. See the Android SQLite and Cursor Article for more information. setContentView(listView); } private ArrayList getPeopleInPhone2(){ ArrayList list = new ArrayList(); Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, 代码示例参考推荐:Working With Android Contacts Android Contacts的使用

33930

Android SMS(二)—— 读取短信保存到 SQLite

Android 之 SMS 短信在Android系统中是保存在SQLite数据库中的,但不让其它程序访问(Android系统的安全机制)现在我们在读取手机内的SMS短信,先保存在我们自己定义的SQLite ); smsHander.createSMSDatabase(); 创建SQLite数据库 smsHander.insertSMSToDatabase(); 读取手机短信,插入SQLite数据库 Cursor cursor = context.getContentResolver().query(SMS_CONTENT, projection, null, null, date desc); 获取手机短信 (select count(*) from sms, null); dbCount.moveToFirst(); if (dbCount.getInt(0) > 0) { Cursor dbcur = 代码示例推荐参考:Android 之 SMS 短信读取

40330
  • 广告
    关闭

    云产品限时秒杀

    云服务器1核2G首年50元,还有多款热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    微信 WCDB 进化之路:开源与开始

    Cursor 实现优化 Android 框架查询数据库使用的是 Cursor 接口,调用 SQLiteDatabase.query(...) 会返回一个Cursor 对象,之后就可以使用 Cursor 遍历结果集了。 Android SDK SQLite Cursor 的实现是分配一个固定 2MB 大小的缓冲区,称作 Cursor Window,用于存放查询结果集。 查询时,先分配Cursor Window,然后执行 SQL 获取结果集填充之,直到 Cursor Window 放满或者遍历完结果集,之后将 Cursor 返回给调用者。 假如 Cursor 遍历到缓冲区以外的行,Cursor 会丢弃之前缓冲区的所有内容,重新查询,跳过前面的行,重新选定一个开始位置填充 Cursor Window 直到缓冲区再次填满或遍历完结果集。

    2K31

    Android ContentProvider实例详解

    ContentProvider(内容提供者)是Android的四大组件之一,管理android以结构化方式存放的数据,以相对安全的方式封装数据(表)并且提供简易的处理机制和统一的访问接口供其他程序调用。 而且Android为常见的一些数据提供了默认的ContentProvider(包括音频、视频、图片和通讯录等)。 在Android中URI的格式如下图所示:? MIME类型一般包含两部分,如:texthtml textcss textxml applicationpdf分为类型和子类型,Android遵循类似的约定来定义MIME类型,每个内容类型的Android 下面分别介绍Android系统提供了两个用于操作Uri的工具类:ContentUris和UriMatcher。

    79520

    数据库基础开源学习教程-android 使用 litepal 操作本地数据库

    说明android手机自带本地数据库 SQLite ,操作本地数据库android给了api不过这节的重点是讲解如何使用 郭霖(第一行代码) 写的litepal 操作数据库在使用litepal之前,咱们先看下使用 android 自带的api操作数据库打开本节代码? 1.用户可以去百度了...这是Android  api操作数据库最基本的规定? query(String name) { db = getWritableDatabase(); Cursor cursor = null; String str = null; str = select +name + from + TABLE_NAME; cursor = db.rawQuery(str,null); return cursor; }} 2.上面的程序是生成这样一张表格?

    20620

    Android通过URI获取文件路径

    之前在工作的过程中,遇到不同 Android 版本下 URI 采用不同方式来获取文件路径的问题。因为需求的原因,要求拍照上传或者从相册中选择图片上传,而且图片是需要经过压缩的,大小不能超过2M。 if (ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) { Cursor cursor = context.getContentResolver = context.getContentResolver().query(uri, projection, selection, selectionArgs, null); if (cursor ! 这下就解决了对于 Android 4.4 及以上的机型适配。 = context.getContentResolver().query(uri, projection, selection, selectionArgs, null); if (cursor !

    1K60

    Android开发实现读取assets目录下db文件的方法示例

    query(SQLiteDatabase sqliteDB, String selectionArgs) { City city = null; try { String table = city; Cursor cursor = sqliteDB.query(table, columns, selection, selectionArgs, null, null, null); if (cursor.moveToFirst ()) { String parentCity = cursor.getString(cursor .getColumnIndex(parent)); String phoneCode = cursor.getString 更多关于Android相关内容感兴趣的读者可查看本站专题:《Android文件操作技巧汇总》、《Android操作SQLite数据库技巧总结》、《Android视图View技巧总结》、《Android编程之 activity操作技巧总结》、《Android布局layout技巧总结》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》及《Android控件用法总结》希望本文所述对大家Android

    32220

    Android如何通过URI获取文件路径示例代码

    前言最近在工作的过程中,遇到不同 Android 版本下 URI 采用不同方式来获取文件路径的问题。 因为需求的原因,要求拍照上传或者从相册中选择图片上传,而且图片是需要经过压缩的,大小不能超过2M。 if (ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) { Cursor cursor = context.getContentResolver = context.getContentResolver().query(uri, projection, selection, selectionArgs, null); if (cursor ! 这下就解决了对于 Android 4.4 及以上的机型适配。 = context.getContentResolver().query(uri, projection, selection, selectionArgs, null);if (cursor !

    88600

    Android】数据存储(三) 数据库(SQLite)

    SQLite前言之前介绍过Android中保存数据的两种方式:SharedPreferences和File,这篇介绍另一种存储数据的方式——数据库。 扯远了...进入正题,在Android开发的过程中,保存数据是难免的。 如果数据量较小的时候可用SharedPreferences或File来保存,当数据量较大且关系复杂的时候就要用到Android中的数据库SQLite——轻量级数据库系统。 cursor = database.rawQuery( SELECT * FROM user WHERE id=? 详情请参考Android 中关于 【Cursor】 类的介绍 改(Update) ** * 更新一条用户数据 * @param user 用户对象 * public void updateAUser(User

    54370

    制作一个Android Sqlite远程运维小工具

    前言前面的文章中《实现Android本地Sqlite数据库网络传输到PC端》中制作的将本地Sqlite数据库通过网络通讯传到PC端后进行数据的查看,为便运维时使用的,但是如果发现问题后需要对数据库的数据进行修改时 ,只能通过改了本地数据库再覆盖Android的数据库,这样操作起来非常麻烦,所以本章就是在当时的程序基础上实现了一个针对Android Sqlite数据库进行Sql操作的运维小工具。 Query的数据呈现Query返回Cursor点击Query的方法后可以看到方法中直接就是返回的Cursor、因为手动写的Sql,并不能知道要返回的对应类,所以在返回数据的时候需要对Cursor进行动态数据的处理 = db.openHelper.writableDatabase.query(sql) cursor?. 关于数据库的通讯,及通讯的方式,可以看《实现Android本地Sqlite数据库网络传输到PC端》这篇文中,最后这个Demo的源码地址如下,GitHub上不去的可以点击文末的原文链接,上面是码云的源码地址

    6120

    Android开发笔记(三十一)SQLite游标及其数据结构

    这里提到ContentValues,还是因为Android源码在操作SQLite时只认这个数据结构,而不认别的java容器类,所以我们得额外对它加以了解了。 Cursor是用来指示当前查询操作的游标,在Android中一般用于查询SQLite,也可用于查询ContentProvider,甚至可用于DownloadManager查询下载任务。 Cursor的常用方法如下: 控制类 close : 关闭游标 isClosed : 判断游标是否关闭 isFirst : 判断游标是否在开头 isLast : 判断游标是否在末尾 移动类 moveToFirst cursor = mDB.rawQuery(sql, null); if (cursor.moveToFirst()) { for (;; cursor.moveToNext()) { Person cursor.isLast() == true) { break; } } } cursor.close(); return personArray; }点击下载本文用到的SQLite游标操作的工程代码 点此查看Android

    30440

    Android StrictMode运行流程(推荐)

    什么是 StrictMode(严苛模式)strictmode是android在 API9后引入的检测影响app运行流畅性的一种机制,例如我们都知道的主线程中不允许有网络操作这条规则就是严苛模式规则的一种 setThreadPolicy() 方法可以设定 Policy 变量中的mask值.之后会将 POLICY 变量传入 BlockGuard 中,BlockGuard 运行在 Dalvik虚拟机中,对所有的异常操作进行统一的管理.Android 可以在主线程中检测硬盘和网络相关的操作.将硬盘读写操作和网络相关操作挪出主线程可以使你的app更加流畅和具有响应性.同时为了使app更加响应性,你可以屏蔽ANR发生时弹出的dialog.需要注意的是,尽管android via the callback to onStrictModePolicyChange, below. setBlockGuardPolicy(policyMask); And set the Android cursor, IContentProvider icp) { super(cursor); mContentProvider = icp; mCloseGuard.open(close); }2.onSqliteObjectsLeaked

    14120

    android 识别U盘以及读写文件的方法

    android中读写文件的需求地方很多,其中就包括了识别U盘,弹出U盘,读写U盘的文件等。那么,如何实现这些需求呢?笔者简单的说下:1.识别U盘:识别U盘的方法只要是用到了2个android官方类。 cursor) { super.onQueryComplete(token, cookie, cursor); if (! = null) { mCallback.QueryNotify(arg.uri, cursor); } if (! QueryNotify(Uri uri, Cursor cursor)当然参数的个数或者回调的名字可以自定义,笔者在这里有2个参数,第一个主要用于区分类型,第二个作用在于获取数据。 在这里已经有cursor,因此也不是什么难事了,在这里也不bb如何读数据了。简单的说下如何写数据。写数据的方法跟弹出U盘大似相同,都是通过ContentResolver

    47720

    Android Contacts(二)—— SMS 短信 与 Contacts 联系人关联

    Android 的SMS读取短信,可以获取发信人收信人的手机号码(address),Contacts的联系人,可以过滤手机号码(address),因此SMS可以通过手机号码(address)关联到Contacts Uri.withAppendedPath(ContactsContract.CommonDataKinds.Phone.CONTENT_FILTER_URI, address); address 手机号过滤 Cursor cursor = getContentResolver().query(uri_Person, projection, null, null, null); if(cursor.moveToFirst cursor = getContentResolver().query(uri_Person, projection, null, null, null); if(cursor.moveToFirst 示例代码参考推荐:Android 之 Contacts 联系人读取

    26820

    Android数据库安全解决方案,使用SQLCipher进行加解密

    Android中,我们既可以使用原生的SQL语句来对数据进行操作,也可以使用Android API提供的CRUD方法来对数据库进行操作,两种方式各有特点,选择使用哪一种就全凭个人喜好了。 下面我们就开始吧,首先要把Android项目所依赖的SQLCipher工具包下载下来,下载地址是:https:s3.amazonaws.comsqlcipherSQLCipher+for+Android cursor = db.query(Book, null, null, null, null, null, null); if (cursor ! 在查询数据按钮的点击事件里面,我们调用SQLiteDatabase的query()方法来查询Book表中的数据,查询到的结果会存放在Cursor对象中,注意这里使用的是net.sqlcipher包下的Cursor 然后对Cursor对象进行遍历,并将查询到的结果打印出来。 现在运行一下程序,先点击添加数据按钮,再点击查询数据按钮,刚刚添加的那条数据就应该在控制台里打印出来了。

    73890

    Cursor引发的一系列思考

    突然想到我们在通过ContentResolver对象调用ContentProvider的调用query返回Cursor的时候,本质上这是一次Binder通信,那这个Cursor对象大小有没有限制呢? 这样子看来Cursor的大小是不受限制的,不懂匿名共享内存的可以先看一下匿名共享内存(Ashmem)的使用其实在Android Framework中对此有一定的限制,请注意在CursorWindow:: ,安卓系统中Cursor的data匿名共享内存的大小限制是2MB。 其实android为什么要做这个限制,想想也很简单,如果可以通过Intent来传递FD,会导致程序中的FD泛滥成灾,一个应用的FD上限是1024,这样子应用太容易crash了。 More通过最近的几次研究,发现匿名共享内存在android中使用还是非常多的,只是android的SDK基本帮我们封装好了,不希望我们直接操作匿名功能内存,毕竟一旦操作不好就容易FD泄露,匿名共享内存泄露

    31520

    android listview进阶实例分享

    上一篇《android listview初步学习实例代码》分享了一个listview初级实例,本文我们看看一个进阶实例。目录结构:? cursor = personDAO.getPersons();cursor类似一个指针 lvPerson = (ListView) findViewById(R.id.lvPerson);SimpleCursorAdapter (context, layout, c, from, to ) listview的布局 cursor 需要显示的列 在哪个控件中显示 数组开头的列必须是_id SimpleCursorAdapter adapter = new PersonAdapter(this, R.layout.person_item, cursor, new String{ R.id.tvPid, R.id.tvPname, R.id.ivPgender }); SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.person_item, cursor

    13920

    Android SQLite数据库基本用法详解

    SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。 综合来看,即轻量 兼容 多端 无需配置 无外部依赖 拥有简单易懂的API 安全 在Android中如何使用 Android 提供的 SQLiteOpenHelper.java 是一个抽象类。 cursor = db.rawQuery(select * from info.db, null); if (cursor.getCount() ! 解析:使用Cursor游标方法类,从数据库获取列表并比对。 使用游标获取数据库列表并匹配参数 Cursor cursor = db.rawQuery(select * from user where username = ?

    20430

    Android开发笔记(五十四)数据共享接口ContentProvider

    其中最常用的是query函数,调用该函数返回一个Cursor对象,有关Cursor的操作参见《Android开发笔记(三十一)SQLite游标及其数据结构》。 针对上面的问题,Android提供了ContentProviderOperation类,用于在一个事务中批量插入多条记录,这样即使出现失败,也会由ContentProviderOperation统一处理回滚事宜 然而不是所有的系统数据变更都会触发广播(比如添加联系人),所以Android又提供了ContentObserver类,该类可协助处理Content数据变化的监听事件。 下面是两种监听方式在监听短信接收中的具体运用,监听结果消息使用了Notification推送到消息栏,有关Notification的使用说明参见《Android开发笔记(五十二)通知推送Notification :smsoutbox 发送失败: content:smsfailed          待发送列表(比如开启飞行模式后,该短信就在待发送列表里): content:smsqueued     点此查看Android

    39620

    Android中ContentProvider的用法

    Android中,如果要将一个程序的数据共享给另一个程序,在之前的Android版本,我们可以设置Android文件和SharedPreferences操作的两个模式:MODE_WORLD_READABLE 的时候就被废除了,那么现在要在不同的Android程序之间共享数据的话就只能通过ContentProvider(内容提供器)来实现了(排除你是黑客的前提下)。 下面来看一下怎么来读取其他Android程序的数据。 * Cursor cursor = contentResolver.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null 进行处理,将储存联系人信息的ArrayList对象中的数据清空,并且将Cursor对象中储存的数据提取到ArrayList对象中, 之后调用适配器adapter.notifyDataSetChanged

    1.1K10

    相关产品

    • 移动直播 SDK

      移动直播 SDK

      移动直播 (MLVB) SDK 是腾讯云直播服务在移动场景的延伸,集成了腾讯云直播的推 / 拉流能力,提供包括 iOS、Android、小程序、Web 等多种接入方式,为您提供针对移动场景的高质量直播服务,快速满足手机直播的需求。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注云+社区

      领取腾讯云代金券