从之前的项目摘出来这段代码,去掉了裁剪功能 package com.example.one; import android.content.Intent; import android.database.Cursor...; import android.graphics.drawable.Drawable; import android.net.Uri; import android.preference.PreferenceManager...; import android.provider.MediaStore; import android.support.annotation.Nullable; import android.support.v7....app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText...Uri uri=data.getData(); String[] images={MediaStore.Images.Media.DATA};//将获取到的
之前在工作的过程中,遇到不同 Android 版本下 URI 采用不同方式来获取文件路径的问题。 因为需求的原因,要求拍照上传或者从相册中选择图片上传,而且图片是需要经过压缩的,大小不能超过2M。...最关键的来了,如果通过 URI 来获取文件呢?...因为在 Android 4.4 及以上的手机上,获取到的 URI 变成了 content://com.android.providers.media.documents/document/image%3A235700...这是因为在 Android 4.4 及以上的机型,使用了 DocumentUri 来代表获取到文件的 URI 。 所以我们又要对于 DocumentUri 进行适配。...这下就解决了对于 Android 4.4 及以上的机型适配。
有时我们想通过点击浏览器中某些广告链接来启动或下载APP,以启动APP来说,我们知道APP可以定义一个scheme,如果我们在浏览器中定义一个URL,这个URL使用定义的scheme,这样点击后我们就可以打开我们的客户端了...,但目前市面上有些浏览器支持性不好,或者直接就不支持,认为这个打开是一个有害的链,那么我们还有没有其它的办法来结合,下面我们以web服务做为功能基础来实现 我们知道如果在地址栏中输入http://127.0.0.1...:port 实际上是访问本地的一个端口号,http底层实现又是基于socket来实现,那么我们可以在我们客户端中建立一个socket服务监听某个端口,然后在手机的浏览器中进行127的访问必定会收到数据,...TextUtils.isEmpty(callback)) { // 是否有回调函数 callback += "(" + android.os.Build.VERSION.SDK_INT...} catch (Exception e) { e.printStackTrace(); } } 这里可以把客户端当作了一个web服务器,所有的浏览器以
今天碰到个问题,想获取某个已安装的包的大小,没找到合适的方法。...再后来,我想起系统的设置里面有一个应用程序管理,它里面列出了所有程序的占用空间大小、数据大小和缓存大小。恩,这个就是突破口。 ...以前写过一篇获取其他包的Context ,这个东西是真有用,这个结合反射,可以做很多神奇的事情,比如今天的这个。 ...; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log...获取到PackageStats对象,就可以从中获取到应用程序的占用空间大小、数据大小和缓存大小。 另,这毕竟只是hack code,不可能通用。
public class MainActivity extendsAppCompatActivity {int REQUEST_CODE = 0;private...
在前面的两篇文章中,介绍了 Android 通过 JNI 进行基础类型、字符串和数组的相关操作,并描述了 Java 和 Native 在类型和签名之间的转换关系。...得到了 Java 类型和字段的 id 后,就可以通过 GetObjectField 方法来获取具体的值,它的两个参数分别是之前获得的 Java 类型和字段 id 。...方法调用 JNI 调用 Java 方法和 JNI 访问 Java 字段的步骤也大致相同, 获取 Java 对象的类 获取对应方法的 id 调用具体的方法 以调用类的实例方法和静态方法为例: 调用类的实例方法...callStaticMethod,该方法需要传递一个 String 字符串参数,同时返回一个字符串参数。...小结 可以看到,从 JNI 中访问 Java 的字段和访问,两者的步骤都是大致相似的,只是调用的 JNI 方法有所区别。 具体示例代码可参考我的 Github 项目,欢迎 Star。
//获取图片真正的宽高 Glide.with(mContext).asBitmap().load(list.get(0).imagePath).into(new SimpleTarget
书接上一回,写了一个Android通过URL文件下载及文件名提取;以其简单受到其他小伙伴的赞许。今天刚好需要写一个安卓版的 网页内容获取功能。...HttpURLConnection) url.openConnection();// 设置连接主机超时时间 urlConn.setConnectTimeout(5 * 1000);//设置从主机读取数据超时...urlConn.getResponseCode() == 200) { String result = streamToString(urlConn.getInputStream());//获取的内容...0".equals(ipArr[0])) { // 通过HTTPDNS获取IP成功,进行URL替换和HOST头设置 String...注意streamToString是通过输入流转为字符串,也是这里的重点,如果没有这个看到的都是乱码。放码。。。
Bitmap bitmap = ImageLoader.getInstance().loadImageSync(img_url));
添加一个jni调用然后setting调用。但是就算我把/dev/mem的权限模式设置为777,在setting中依旧无权限打开/dev/mem。...现在问题是Android应用程序怎样启动让init进程知道我们想运行那个进程呢?...+Service名称”的属性中,也就是“init.svc.xxx” 属性,应用程序可以参考查阅这个值来确定Service执行的情况。...msg.name + 4, msg.value, cr.uid, cr.pid); } } } } 从源码中我们发现如果设置...“ctl.”开头的Android系统property,将会调用check_control_perms函数来检查调用者的权限,其定义如下: static int check_control_perms(const
服务器的步骤在这里,亲测可行: http://blog.sina.com.cn/s/blog_3f7e47f20100haur.html 主要留意一下绑定的ip地址,以后要用到 要想从ftp服务器获取文件还要用到一个.../schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:..." android:layout_height="wrap_content" android:text="@string/port" android:textSize...android:id="@+id/etUserName" android:layout_width="0sp" android:...; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.Message
网上有网友问android的原生应用,上层java代码如何通过jni调用本地的c/c++接口或第三方动态库 ?之前搞过android应用开发和底层c/c++接口开发都是一个人搞定,觉得还是蛮简单的。...调用其他三方动态库的使用过程,可以参见博主的另一篇文章介绍: 支付宝二维码脱机认证库在android的app下测试过程记录_特立独行的猫a的博客-CSDN博客 java调用JNI总结_特立独行的猫a的博客...平常通过AndroidStudio搞android原生开发的都倒弄过环境,需要下载sdk开发包。...如果接口不带参数,所以签名是()I,如果我的接口方法带两个参数,这里签名应该是 (II)I, I表示的是int类型,否则java层通过JNI调用时,会报找不到方法。...NDK 从入门到精通(汇总篇)_阿飞__的博客-CSDN博客 JNI基础:JNI数据类型和类型描述符_阿飞__的博客-CSDN博客 java调用JNI总结_特立独行的猫a的博客-CSDN博客 支付宝二维码脱机认证库在
完全是看不出来,然后我单独写了一个demo来测试那段代码,发现错误的详情是这样: 09-29 11:45:27.576: E/AndroidRuntime(17871): android.content.ActivityNotFoundException...: No Activity found to handle Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE...没有能响应指定Intent的Activity,但是我手机查看订阅号的文章,点击右上角“在浏览器上打开”,是可以弹出选择浏览器的界面,正常的。
//选择图片 requestCode 返回的标识 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); //"android.intent.action.GET_CONTENT...intent.setType(ContentType.AUDIO_AMR); //String AUDIO_AMR = "audio/amr"; intent.setClassName("com.android.soundrecorder...", "com.android.soundrecorder.SoundRecorder"); ((Activity) context).startActivityForResult(intent...REQUEST_CODE_TAKE_PICTURE 为返回的标识 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //"android.media.action.IMAGE_CAPTURE
除此之外,还提供了一个PackageManger管理类,它的主要职责是管理应用程序包。 通过它,我们就可以获取应用程序信息。...它并不 直接使用,而是由子类继承然后调用相应方法。...值 (对应于android:name属性) public String packagename 获得该应用程序的包名 (对应于android:packagename属性...我们可以通过它来获取我们设置的任何属性,包括 theme 、launchMode、launchmode等 常用方法继承至PackageItemInfo类中的loadIcon()和loadLabel...pm) 获得当前应用程序的label PackageInfo类 说明:手动获取AndroidManifest.xml文件的信息 。
文章目录 一、dlopen 函数简介 二、获取 目标进程 linker 中的 dlopen 函数地址 三、远程调用 目标进程 linker 中的 dlopen 函数 一、dlopen 函数简介 ----.../ 可执行文件 中的某个方法的地址 , 参考 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 中的 /system/lib/libc.so 动态库中的...远程调用 目标进程 linker 中的 dlopen 函数 ---- dlopen 函数参数准备 : 将字符串 "/data/system/debug/libbridge.so" 写出到远程进程内存中..., 然后获取地址 , 该地址可以作为 char* 类型字符串使用 ; /* 向 目标进程 内存 写出 "/data/system/debug/libbridge.so" 数据 */ ptrace_writedata...逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 二 | 准备参数 | 远程调用 mmap 函数 ) 博客 , 通过 设置
布局文件: android="http://schemas.android.com/apk/res/android" xmlns:tools="http...view */ public void openActivity(View view) { // 创建意图对象 Intent intent = new Intent(); // 方便调用...// 获取网络的连接信息 NetworkInfo info = cm.getActiveNetworkInfo(); // 假设没有不论什么的网络信息info为null; if (info !...class SecondActivity extends Activity { /** * 一般都会重写的方法,用途大都是初始化一些数据,和程序的界面 * Activity创建的时候进行调用...-- icon:指定应用程序的图标;label:指定应用程序的名称; --> android:name="android.permission.ACCESS_NETWORK_STATE
实现UAF协议的时候,Client需要获取调用者的信息(获得其APK的签名)。...: 只有调用者使用的是startActivityForResult(),且Intent不设置NEW_TASK时才可以获取,调用startActivity()得到的是null。...获取到Uid之后,使用getPackageManager().getPackagesForUid(uid)获取到对应的包名。...如果多个apk使用了shareUserId的话,返回值将会是多个包,这时候就没办法知道具体是哪个package调用的了。...不过使用shareUserId的前提是使用相同的签名文件签名,而UAF要求是得到调用者apk签名的hash,这样的话哪个package调用结果都一样了。
文章目录 前言 一、x86 架构的返回值获取 二、ARM 架构远程调用 前言 在之前的博客 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 中的 /...system/lib/libc.so 动态库中的 mmap 函数地址 ) 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的...mmap 函数 二 | 准备参数 | 远程调用 mmap 函数 ) 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap...函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 ) 中 , 介绍了 调试进程 远程调用 远程进程 的 libc.so 动态库中的 mmap 函数 , 本博客继续对该远程调用过程进行一些补充...; 一、x86 架构的返回值获取 ---- 远程调用 返回值获取 : 在 x86 架构的 CPU 中 , 使用 EAX 寄存器记录返回值 , 在 ARM 架构的 CPU 中 , 使用 R0 寄存器记录返回值
Android 通过应用程序来设置系统的日期和时间中的 android 2.3 android 4.0 测试可行,刚需ROOT权限. import java.io.DataOutputStream;...import java.io.File; import java.io.IOException; import java.util.Calendar; import android.os.SystemClock
领取专属 10元无门槛券
手把手带您无忧上云