Android中碰到的小问题(1)

来源:互联网 发布:学汉语拼音的软件 编辑:程序博客网 时间:2024/05/29 07:32

1、屏蔽输入法的表情符号输入

  EditText控件的输入,要求过滤掉表情符号,网上搜只说匹配过滤Emoji符号,比较麻烦,考虑其实直接禁掉表情按钮(变灰)即可。

  在设置EditText的输入风格时设置成邮件地址格式即可,对一些特殊的场景可能会有影响(暂未发现),但是当一般的字符输入确是没有影响的。

  这样:

  edittext.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);


2、过滤输入的表情符号

EditText控件输入的表情过滤,仅靠禁止表情按钮是不可行的,有人会以复制表情的方式,直接粘贴过来。最终还是得拿到Emoji的编码范围,进行过滤。具体可查询Emoji表情库,各种编码的对应关系,网上有,这里我识别成Unicode编码。

<span style="white-space:pre"></span>/** * 表情符号识别 */public boolean containEmoji(String str) {//表情编码范围Pattern emoji = Pattern.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]",Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);Matcher emojiMatcher = emoji.matcher(str);if (emojiMatcher.find()) {return true;}else {return false;}}

3、data/app-lib/包名-num中-num的含义

  data/app-lib/包名-num/xx.so 一般是存放某app的so库等本地文件,

  data/app-lib/包名-1,代表最初的存放目录,

  data/app-lib/包名-2,代表该app升级覆盖后的存放目录。

 

4、关于一个WebView的net::ERR_CONNECTION_RESET

  本来随手写个demo,简单的很,以前没出过错,今天出现这个问题,查了半天,没找到解决方法,用别人的demo又没事,自己写的就有问题。

  最后原来是在shouldOverrideUrlLoading方法中,webview加载的url是我全局的url,不是shouldOverrideUrlLoading方法传入的url参数,一个小细节,弄了半天。

  比如输入http://www.baidu.com/,在方法外面loadUrl时,传入百度的url会变成别的url重定向,如果在

  shouldOverrideUrlLoading方法中还是用最初的url,它就一直循环调用shouldOverrideUrlLoading,从log看,死循环。以后注意,shouldOverrideUrlLoading方法里用它传入的参数。


5、Android限制只有邮箱软件识别接收的邮件

发送邮件的代码就不多说了,网上一大把。但是发送后,打开邮件时,会发现打开方式连非邮箱软件也列出来了,什么蓝牙,百度云等等。

如果更期望只有专门的邮件软件出现,不相关的软件不列举出来,其实方法也比较简单。

在发送邮件的代码里,通常我们是写的

Intent intent = new Intent(Intent.ACTION_SEND);

将其改成就ok了:

Intent intent = new Intent(Intent.ACTION_SENDTO);


6、针对4.0系统中Home键监听

网上2.3系统的home键监听代码很多,就不记录了。4.0的倒是少点,很多说要改源码,以下方法就不用:
 
public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码        setContentView(R.layout.main);    }

再重写onKey事件即可。

0 0
原创粉丝点击