`
Darar
  • 浏览: 85473 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
  在Android中,虽然我们可以通过Runtime.getRuntime().exec("su")的方式来判断一个手机是否Root, 但是该方式会弹出对话框让用户选择是否赋予该应用程序Root权限,有点不友好。 其实我们可以在环境变量$PATH所列出的所有目录中查找是否有su文件来判断一个手机是否Root。 当然即使有su文件,也并不能完全表示手机已经Root,但是实际使用中作为一个初略的判断已经很好了。 另外出于效率的考虑,我们可以在代码中直接把$PATH写死。 private final static int kSystemRootStateUnknow=-1 ...
海双卡双待手机[海信]挂断来电和指定卡去电实现的技术调研信双卡手机拨打电话时,在启动拨打电话时,传递一个参数给系统,这样系统的可以根据该参数判断使用指定的卡: Intent i = new Intent(); i.setAction(Intent.ACTION_CALL); i.setData(Uri.parse("tel:" + address)); i.putExtra("subscription", type);// subscription 是名称,不可改变. type :1为gsm卡|0为电信卡 i.addFlags(In ...
在Android系统中,通过代码控制拍照都会有咔嚓一声,并且这个声音没法通过设置去除或改变,系统没有让拍照无声的接口。 这是由于手机拍照有声音是国际标准,就是为了防止偷pai,正规的Android发布厂商都会有。 换一种思路,相机除了拍照还有录像和预览的功能,拍照和录像都是无可避免有声音的,而通过相机预览是没有声音的。 所以需要研究一下预览模式下,能不能获取当前的图像。通过研究Camera类,发现真的有一个Camera.PreviewCallback的子类。 通过Camera.setPreviewCallback(previewCallback)方法,在相机预览的过程中, 每一帧都会回 ...
  有些时候我们需要比对apk包的publickey,获取没有安装的APK包中的publickey可以使用如下的方式:   1      public String collectCertificates(String filePath) {   2         String result = "";   3         try {   4          ...
 interpolator的使用,PATH中使用了OvershootInterpolator以及AnticipateInterpolator。   interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果可以 accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。   AccelerateDecelerateInterpolator 在动画开始与介绍的地方速率改变比较慢,在中间的时候加速   AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速   Ant ...
AsyncQueryHandler:异步的查询操作帮助类,其实它同样可以处理增删改 1。AsyncQueryHandler的作用 查询其API便可知,它担供: startInsert startDelete startUpdate startQuery 这四个操作,并提供相对应的onXXXComplete方法,以供操作完数据库后进行其它的操作,这四个onXXXComplete方法都是空实现,以便我们只需要去实现我们关注的操作。  
在开发中这么一个场景。如果你是用onCreateDialog showDialog 系统的一系列方法去操作dialog 那么当你dialog存在时,你离开了当前的activity。再回到此activity时,点击dialog上的按钮,按钮的事件是显示另一个dialog。则你会发现以下异常:  java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.   原因 1. 在你离开界面再回来时, ...
最近在测试中经常要去查看一个进程的流量。所以了解了一下这方面的知识!在此总结一下   Android流量监控主要是有两种方法:     一.抓包 这个方法获取的流量更加精准,但是难度应该大点。本人没有了解过,所以在此略过。       二.读取linux本地文件
通常我们的联系人查询需要按名字进行排序,可以加上以下的排序语句,意思是,按本地语言进行排序 ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC
On call screen type *#*#2846579#*#* opens system management menu Project menu -> background settings-> Log setting Log level setting -> VERBOSE Log switch-> LOG on Dump and Log -> Checked all the boxes Restart device. 翻译: 1,在拨号界面输入 *#*#2846579#*#*,然后会打开 系统管理菜单
import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /******************************************************************************* * AES加解 ...
在项目中要求把listView 加一个headView 但headView 不能出现分隔线,找了很多办法。 才知道android listview有一个设置可以去掉 mListView01.setHeaderDividersEnabled(false); 同理 footerview 也一样有setFooterDividersEnabled(false)
开发时需要动态添加 CheckedTextView ,而我们需要在代码中设置,setCheckMarkDrawable它的选择框图片。 通常我们直接用系统 的setCheckMarkDrawable (android.R.attr.listChoiceIndicatorMultiple)。 可是会报找不到资源的错误。   从google上找到解 决方法 //根据数组id得到数组类型 int[] attrs = { android.R.attr.listChoiceIndicatorMultiple }; TypedArray ta = mContext.getThem ...
package cn.jd3g.utils; 002 003 import java.lang.ref.SoftReference; 004 import java.util.HashMap; 005 import java.util.LinkedHashMap; 006 import java.util.Map.Entry; 007 008 import android.graphics.Bitmap; 009 import android.os.Handler; 010 import andro ...
论Android系统源码数据库(mmssms.db)中几个表之前的关系. 首先明了未接信息的数据库的位置在系统 /data/data/com.android.providers.telephony/databases/mmssms.db 包下。 希望大家能够结合源码中的 1.       Telephony.java (主要讲这些表里有哪些字段) 2.       MmsSmsProvider.java (ContentProvider被重写) 3.       MmsProvider.java (ContentProvider被重写) 4.       SmsProvide ...
Global site tag (gtag.js) - Google Analytics