站内搜索

本次搜索找到结果 27 条

如题,最近在做调用系统相册选取图片的功能时,发现在一些手机上就会出现这种问题,具体的现象是使用如下代码选取图片:

String IMAGE_UNSPECIFIED = "image/*";
int SELECTPHOTO=10086;
Intent intent=new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.putExtra(Intent.EXTRA_TITLE, "Pick a Pic");
intent.setType(IMAGE_UNSPECIFIED);
startActivityForResult(intent, SELECTPHOTO);

此时在onActivityResult()中会立即收到结果:resultCode=0,data=null。

昨天我行动力爆表,突然就买了域名,买了VPS,搭起来个人博客和VPN,其中踩了一些坑,这里记录一下,给有需要的朋友提个醒。

预先说明,我是使用了影梭的VPN和Firekylin的博客框架。鄙人是搞Android的,搭网站也是摸着石头过河,所以其他博客框架我也不懂。

本文记录我和同事开发《全能分词》(又名《锤子Bigbang》,以下简称Bigbang)的过程,内容不一定精彩,只是个人的记录,如果你也做过或者想做个人APP,可以看下去。

简介

拖拽操作在现在的智能手机中并不少见,老罗的OneStep更是把拖拽做成了一种令人拍手叫绝的交互方式。在锤子手机原生的Bigbang中,普通拖动是多选文字,长按选中的文字并拖动是触发OneStep的分享功能。而我在模仿Bigbang的时候,觉得用户可能需要对文字进行一些微调,所以我把长按设计成了细分词(把词语细分成单字),而拖拽的交互留给了排序功能(需要切换排序开关)。

简介

我们模仿锤子制作的Bigbang应用,通过辅助服务基本上实现了在微信、QQ等聊天应用中快速取词,在其他应用中也能用其他方式补足。虽然由于辅助服务的限制,无法做到在锤子手机中那么方便,但也还算不错了。

最遗憾的是辅助服务在一些系统上(小米、华为等)会容易被自动关闭,导致用户经常抱怨,这是因为这些系统中清理后台的时候,会把应用标记为STOPPED,也就是停止使用的,所以导致了一些权限被回收。后来有用户建议我们使用xposed框架来实现取词,于是我就借此机会学习了一下鼎鼎大名的xposed框架。这篇就是关于如何使用xposed框架实现在所以应用中通过点击获取文字的。

开发一个多进程应用的时候,我们往往无法避免在多个进程之间共享数据。 多进程共享数据的方法有很多种,在Android中常用的有:SharedPreferences(多进程模式)、广播、Socket、ContentProvider、Messenger、AIDL等。这些方法适用于不同的使用场景,又有各自的局限性。

本文即将介绍的是通过ContentProvider,结合SharedPreferences(以下简称SP)实现的进程间共享设置项的功能。这种方式主要适用于以下场景:在一个进程中进行一些设置,而需要在另一个进程实时读取设置,并根据这些设置来执行功能。

在准备实现Bigbang的功能的时候,第一个需要解决的重大问题就是——如何像在锤子手机上一样方便的取词。好在有个同事做过辅助服务相关的功能,给我们提供了一个解决方案:通过辅助服务能够获取对View的点击和长按事件,并取得View的内容。

我目前已知,并且尝试过的获取当前前台应用的方法有如下几种:

  1. Android5.0以前,使用ActivityManager的getRunningTasks()方法,可以得到应用包名和Activity;
  2. Android5.0以后,通过使用量统计功能来实现,只能得到应用包名;
  3. 通过辅助服务来实现,可以得到包名和Activity;
  4. Android5.0以后,可以通过设备辅助应用程序来实现,能得到包名和Activity,不过这种方式必须用户主动触发(长按Home键)

有些时候,我们需要知道当前手机上是否显示了NavigationBar,也就是屏幕底部的虚拟按键。

比如截屏的时候,要获取屏幕的高度,必须包括NavigationBar的高度。

试过网上的多种方法,但是对那种可以通过手势来显示/隐藏的NavigationBar没办法,最后终于找到了一个好办法,看代码: