首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android如何获取联系人所有信息

写一个工具类,获取到通讯录里所有的信息并分好类,至于大家怎么用就不管了,看下代码就都明白了,虽然代码很多,但是很简单,大部分都已分类,如果有没有写上,大家可以打开自己手机上通讯录数据库,里面的字段都有标明...,用内容提供者,因此我们只需要拿到那个字段名基本上就能取出数据了。...android.provider.ContactsContract.CommonDataKinds.Event; import android.provider.ContactsContract.CommonDataKinds.Im...; import android.provider.ContactsContract.CommonDataKinds.StructuredName; import android.provider.ContactsContract.CommonDataKinds.StructuredPostal...id排序,我们看下android联系人表就知道,所有的联系人数据是由RAW_CONTACT_ID来索引开 // 所以,先获取所有的人RAW_CONTACT_ID Cursor cursor =

2.1K30

Android查缺补漏--ContentProvider使用

ContentResolver contentResolver = getContentResolver(); 我们另外新建一个工程,暂且叫做TestApp吧,在这个工程里面添加一个Activity...1、查询系统联系人 通过系统联系人Uri获取系统联系人及手机号码: public void query() { showContact = ""; // 获取联系人Cursor集合..., rawContactId); // 设置内容类型 values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE...); // 设置名字 values.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, name);...最后想说是,本系列文章为博主对Android知识进行再次梳理,查缺补漏学习过程,一方面是对自己遗忘东西加以复习重新掌握,另一方面相信在重新学习过程中定会有巨大新收获,如果你也有跟我同样想法,

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

ContentProvider初探

使用系统提供ContentProvider 其实很多时候我们用到ContentProvider并不是自己暴露自己数据,更多时候通过 ContentResolver来读取其他应用信息,最常用莫过于读取系统...这里给出如何获取URL与对应数据库表字段, 这里以最常用联系人为例,其他自行google~ ①来到系统源码文件下:all-src.rar -> TeleponeProvider -> AndroidManifest.xml...接下来,创建一个项目,我们来实现ContentResolver部分,我们直接通过按钮点击插入一条数据: MainActivity.java public class MainActivity extends...db数据库取出,用图形查看工具 查看即可发现插入数据,时间关系,就不演示结果了~ 通过ContentObserver监听ContentProvider数据变化 ?...初探就到这里,我们学习了: ContentProvider概念以及流程,使用系统提供一些ContentProvider,以及定制自己ContentProvider, 最后还讲解了通过ContentObserver

48830

Android ContentProvider_1 使用方法

通过 ContentResolver 解析数据时,URI 是必要参数,其遵循格式体现在ContentUris.java: Content URIs have the syntax:content:...vnd.android.cursor.dir:多行记录(集合) 例如通讯录 ContentProvider 定义了两种 MIME 类型,分别表示多条记录和单条记录: ContactsContract.java...insert() Binder 线程 delete() Binder 线程 update() Binder 线程 query() Binder 线程 onCreate() 主线程 3.1 插入数据 要插入一行数据...Uri,格式如下: content://com.android.calendar/events URI 中 就是该行 _ID 列值,而前缀 content:...ContentProvider 核心类 4.1 ContentResolver 外界(包括当前进程其他组件)无法直接访问 ContentProvider ,而是需要通过 ContentResolver

58030

Android校招笔试题

产生原因: 潜在耗时操作,例如网络或数据库操作,或者高耗时计算如改变位图尺寸,应该在子线程里(或者以数据库操作为例,通过异步请求方式)来完成。...里启动一个Activity,因为它会创建一个画面,并从当前用户正在运行程序上抢夺焦点。...第三题:如何创建Socket 客户端编程步骤: a) 创建客户端套接字(指定服务器端IP地址与端口号) b) 连接(Android 创建Socket时会自动连接) c) 与服务器端进行通信 d)...SurfaceView:基于view视图进行拓展视图类,更适合2D游戏开发;是view子类,类似使用双缓机制,在线程中更新画面所以刷新界面速度比view快。...在一个启动线程中重新绘制画面,主动更新画面。

1.1K31

Android 4.0 平台特性

Social APIs inContacts Provider UserProfile 最新android包含了一个机主个人档案,在ContactsContract.Profile表里,通过新建一个...ContactUsage Feedback   ContactsContract.DataUsageFeedbackAPIs 允许你追踪用户使用特定方法联系其他人频度,例如用户多久使用每个电话号码或邮件...为了保证您应用程序处理传入NDEF消息,你也应该通过与您Android应用程序记录NdefMessageNdefMessage,即使其他应用程序过滤器相同意图行动。...同时,也允许来传递字段/方法引用功能,并允许通过代码来获取字段/方法值,即使我们不知道字段/方法一些具体信息。...foo.setBar(value); 然而,如果你想传递foo实例和通过其它代码来设置bar字段值,在androidsdk4.0以前是没法做到

1.2K20

烂代码吐槽汇 | 奇葩命名

最好不要使用以字母I为前缀或以interface为后缀,你不觉得这样很多此一举吗?名称命名需要使用名词性单词或短语。 4.奇葩类名和对象名 类名或对象名使用动词,使用非名词或非名词短语。...5.奇葩属性名 类属性名为了和表字段名称一致,名称中单词使用下划线连接;属性名使用非驼峰式命名;使用无意义字母或单词缩写。...6.奇葩方法名 方法名以非动词开头;方法名不能表达出方法体意图;方法名使用以get为前缀;方法名使用单词或短语字母缩写;方法名不遵循驼峰式命名规则。...方法名应该以动词开头,使用动词短语;动词短语应该可以表达出本方法体意图,做到可以根据方法名看出方法做了什么;除了属性getter方法,避免使用以get作为方法名前缀,因为get无法说清方法意图,...小结 命名可以通过总结方式,归纳出属于自己一套命名规则。

82950

Android 代码规范(自用)

类方法 android中方法排序首先生命周期方法在最上方,排序按照自然生命周期排序 其余方法按照调用先后顺序往下排列 方法体内不要多余无意义空行,代码紧凑 ?...文件和目录命名规范 工程目录下所有文件夹名一律用小写字母 drawable目录所有图片资源一律以 ic_ 为前缀开头 同一资源图片不同尺寸一律相同命名以尺寸大小为后缀,如 ic_default_600..._400 , ic_default_300_200 adapter类填充展示布局一律以 item_ 为前缀 listview 和recycleview等类似头部和尾部布局概念分别以 head_ ,...foot_ 为前缀 shape 文件 和 selector 文件 分别以 shape_ , selector_ 为前缀 色值命名 以色值本身名字来命名,而不是以功能性名称表达如 btn_bg,...2.创建java文件上方最少注明作者和创建时间等简要信息,这个可以通过设置androidstudio模板减少工作量. ?

72020

DataBinding学习

theme: condensed-night-purple 可观察性是指一个对象将其数据变化告知其他对象能力。通过数据绑定库,您可以让对象、字段或集合变为可观察,在其数据发生更改时通知其他对象。...所有生成绑定类都是从 ViewDataBinding 类继承而来。 默认情况下,类名称基于布局文件名称布局文件名称根据驼峰式命名并在末尾添加 Binding 后缀。...= DataBindingUtil.bind(viewRoot) 如何查找布局 以往传统布局通过findViewById传入R.id.具体名称查找,但是现在布局文件中id字段被扩展为了布局绑定类中变量...数据绑定数据 在xml中定义数据实体Bean,通过data标签定义变量名称和类型,即可在xml中利用简单布局表达式填充内容。 那么数据如何传入进去呢?...xml中使用,很常见一种情况通过数据某个字段来判断是否显示,这个时候需要引用ViewGone和Visible。

30920

手把手教你如何Android下进行JNI开发(入门)

下面我将从Android.mk和CMake这两种方式教大家如何进行开发。文章结尾将给出演示项目代码,如果你能耐心地仔细看完,相信你一定能掌握如何Android下进行JNI开发。...(3)LOCAL_MODULE:调用库名,用来区分android.mk中每一个模块。文件名必须是唯一,不能有空格。注意,这里编译器会为你自动加上一些前缀lib和后缀.so,来保证文件是一致。...,不要加前缀 lib 和后缀 .so,不然会报错:java.lang.UnsatisfiedLinkError: Couldn’t load xxx : findLibrary【findLibrary...# TODO 添加第三方库 # TODO add_library(libavcodec-57 # TODO 原先生成.so文件在编译后会自动添加上前缀lib和后缀.so, # TODO 在定义库名字时...,不要加前缀lib和后缀 .so, # TODO 不然会报错:java.lang.UnsatisfiedLinkError: Couldn't load xxx : findLibrary

2.9K10

最全面的 Android 编码规范指南

注意: 如果项目采用MVP,所有Model、View、Presenter接口都以I为前缀,不加后缀,其他接口采用上述命名规则。...Type:类型 考虑到Android中使用很多UI控件,为避免控件和普通成员变量混淆以及更好达意,所有用来表示控件成员变量统一加上控件缩写作为后缀(文末附有缩写表)。...对于普通变量一般不添加类型后缀,如果统一添加类型后缀,请参考文末缩写表。 用统一量词通过在结尾处放置一个量词,就可创建更加统一变量,它们更容易理解,也更容易搜索。...说明: 集合添加如下后缀:List、Map、Set 数组添加如下后缀:Arr 注意:所有的VO(值对象)统一采用标准lowerCamelCase风格编写,所有的DTO(数据传输对象)就按照接口文档中定义字段名编写...所有Activity或FragmentcontentView必须与其类名对应,对应规则为: 将所有字母都转为小写,将类型和功能调换(也就是后缀前缀)。

1.5K40

意图Intent

随着应用程序被添加到系统中,他们可以通过添加动作,类型和类别来扩展这种语言,或者通过提供它们自己活动来修改现有短语行为。 意图解析 你将使用两种主要意图形式。...当使用隐式意图时,给定这样一个任意意图,我们需要知道如何处理它。...{action = android.app.action.MAIN,category = android.app.category.LAUNCHER}是Launcher用来填充顶级列表实际意图。...串 EXTRA_ALARM_COUNT AlarmManager在intent中用作一个int外部字段来告诉被调用应用程序有多少未决警报正在被意图传递。...串 EXTRA_REPLACING 在ACTION_PACKAGE_REMOVED 意图中用作布尔额外字段以表示这是对包替换,所以这个广播将立即跟随相同包不同版本添加广播。

91210

还在使用复制粘贴创建测试数据,试试Data Assistant!

免费下载地址:http://www.redisant.cn/da Windows 原生:Data Assistant 使用 Windows Native 技术,这保证软件具有极小安装体积和极高响应速度...快速生成:创建小型或大型数据集,用于表、结构和脚本快速原型设计或压力测试。 真实数据:为任何开发、测试或演示目的生成大量、异构、真实数据,而不是仅仅通过复制和粘贴创建重复不切实际文本字段。...基于文档:您创建数据结构被完整保留,可以为不同目的创建不同数据集。...字段微调:可以对任何字段使用可选前缀后缀;对随机数据填充字段,指定长度或长度范围; 对数字字段指定范围;对日期范围使用格式化字符串决定输出内容。

82240

IP地址分类及范围

前缀部分需要足够位数以允许分配唯一网络号给互联网上每一个物理网络,后缀部分也需要足够位数以允许从属于同一网络每一台计算机都分配到一个唯一后缀。但这不是简单选择就可行。...因为一部分增加一位就意味着另一部分减少一位,选择大前缀可容纳大量网络,但限制了每个网大小;选择大后缀意味着每个物理网络能包含更多计算机,但限制了网络总数。...原则上,n位前缀允许2n个不同网络,n位后缀允许在给定网络上废品2n台主机,下面就是五类地址范围:①A类IP地址一个A类IP地址是指,在IP地址四段号码中,第一段号码为网络号码,剩下三段号码为本地计算机号码...但当前互联网社会所使用设备几乎都是以 IPv4 地址协议来支撑,而 IPv4 与 IPv6 格式并不统一且协议内容并不兼容,那么两者区别到底在哪? IPv6格式又是如何规定与分类呢?...选择项(Options):鉴定额外业务。填充区( Padding):确保报头长度为32位整数倍。IPv6报头各项功能:IPV6数据报格式由3部分组成:IP而数据报头、扩展(下一个头)和高层数据。

1K20

md5碰撞实验

打开bless查看prefix1文件,观察得到填充区域字节长度n。 接下来截取后缀部分,由于前缀生成了n字节填充域,因此后缀长度为文件总长度-n-m字节。...简而言之,上述过程就是把对前缀进行md5碰撞产生填充域替换了xyz中一部分。 最后把前缀后缀拼接在一起即可得到输出结果不同但是md5散列值相同两个可执行文件了。...12352+128+1之后字节截取作为后缀suffix tail -c +12481 task2 > suffix 将suffix与prefix1和prefix2重拼接并执行,发现无执行权限,通过chmod...我们通过截取文件内容,并利用工具构造碰撞填充域,然后将填充域替换可执行文件中变量区域,这样就完成了prefix+填充域(长度为64字节倍数)对于prefix+其他内容(长度为64字节倍数)替换,...所以我们可以通过构造填充域、适当拼接内容来绕过md5算法对于文件完整性和真实性保护,比如让做到不同行为两个可执行文件具有相同MD5值。

45320

解决插件化资源id冲突

EntryId(一般是默认0x7f+两位+四位) 3.aapt命令在打包过程中都做了什么   1)把assets和res目录下所有资源、AndroidManifest.xml,都保存在一个后缀名ap_...AAPT命令,在插件apk打包过程中,通过指定资源id前缀,比如0x71,来保证宿主和插件资源id永远不会冲突   1)在AAPT命令行参数中传递apk打包时前缀值   2)把这个值设置给Bundle...实体mApkModule字段,作为ResourceTable构造函数参数传递进去   3)在ResourceTable构造函数,读取Bundle参数中mApkModule值,也就是前缀值,设置给...都是c代码,就不贴了   4)把AAPT工具命名为aapt_mac,放到项目根目录下 apply plugin: 'com.android.application' import com.android.sdklib.BuildToolInfo...详细代码见资源插件化 方案1缺点是资源id前缀是有限,就256个值,当一个app中有多于256个插件时,就要考虑方案2了 --摘自《android插件化开发指南》

2.8K21

开发工具总结(8)之图文并茂全面总结上百个AS好用插件(下)

八、代码补全工具: 1.Android Postfix Completion 可根据后缀快速完成代码,这个插件在Android Studio原有的基础上增添了一些功能 。...Studio插件,将通过逐个文件去配置模板方式改进为通过插件来实现,对于简单模板制作,只需要一键即可生成。...这是一个Gradle插件,所以如何配置可以去github源码上看。...gradle-packer-plugin 是Android多渠道打包工具Gradle插件,可方便于自动化构建系统集成,通过很少配置可实现如下功能 : 支持自动替换AndroidManifest文件中...详细可参考说一说Android Studio和IDEA中一个很有用内存调试插件一文。 示意图: ? 示意图 ?

1.5K30
领券