
移动开发
文章平均质量分 66
黄宝康
这个作者很懒,什么都没留下…
展开
-
android内容提供者获取联系人练习
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程在上一讲中,我们讲解了ContentProvider,在这里我们应用一下,获取手机上所有联系人,并启动Intent的回调和带结果的返回。布局:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"原创 2021-01-12 09:12:46 · 318 阅读 · 0 评论 -
android中contentProvider及ContentResolver
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程这个技术是解决应用之间的一个调用,如常见的应用间数据库查询,内容提供者暴露接口,内容解析器ContentResolver通过调用相应CRUD接口,内容提供者需要在清单文件进行定义。案例:我们新建一个PersonProvider继承ContentProvider,并在CRUD实现上借助Sqlite工具类进行操作。这个同时需要理解一些理论性的知识,如URI的格式content://com.hbk.hbk_pr原创 2021-01-11 21:21:39 · 581 阅读 · 1 评论 -
android拦截黑名单电话和短信
在之前的这篇博客中,https://blog.csdn.net/huangbaokang/article/details/112334420我们讲解了手工挂断电话,使用的是AIDL,通过点击按钮来触发挂断电话的功能。接下来我们实现自动挂断电话,到达拦截黑名单电话的功能。具体原理是通过广播接收器,通过注册开机的广播,启动一个挂断电话的服务即可,我们分两步,手工启动挂断电话的服务,此处不使用广播,后面将讲解。布局<RelativeLayout xmlns:android="http://sche原创 2021-01-11 09:31:58 · 1916 阅读 · 0 评论 -
android中BroadCast广播
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程广播分一般广播和有序广播,广播接收者注册的话分静态注册和动态注册。在编写代码的实现上,一般先编写广播接收这端,然后再编写发送广播端。一、静态注册静态注册,我们只需编写一个继承BroadcastReceiver,然后在功能清单文件中进行配置即可。 <receiver android:name="com.hbk.brocastreceivedemo.MyBrocastReceiver1">原创 2021-01-08 14:52:15 · 344 阅读 · 0 评论 -
android使用AIDL挂断电话
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程android没有相关API挂断电话,而是使用AIDL,使用ITelephony的endCall()首先项目中引入ITelephony.aidl,注意报名需要跟文件定义的一致/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "Li原创 2021-01-07 20:15:12 · 583 阅读 · 0 评论 -
android音乐播放
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程布局就几个按钮<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent原创 2021-01-07 11:53:03 · 355 阅读 · 0 评论 -
android中aidl
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言.设计这门语言的目的是为了实现进程间通信,尤其是在涉及多进程并发情况下的进程间通信。学习这个是在Service的远程服务调用时会遇到这个问题。service的调用分本地调用和远程服务调用。本地其实就是同一个应用之间的调用,远程服务调用就是不同应用之间的调用。比如淘宝里的芭芭原创 2021-01-07 11:25:17 · 609 阅读 · 0 评论 -
模拟器报Installation error: INSTALL_FAILED_CONTAINER_ERROR
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程报错信息如下解决方法把清单文件的这个配置preferExternal改成auto原创 2021-01-06 16:01:20 · 283 阅读 · 0 评论 -
android的事件机制
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程一、触摸事件事件机制好比生活中的例子你是一个公司的员工,你的上头有一个主管,主管上头呢还有一个经理。为了简单,你们这个团队就有这三个人。那么如果上头安排一件事下来要处理,流程是怎样的呢?显然应该是由你的经理将这件事安排给你的主管来处理,你的主管再将这件事安排给你来处理。等你把这件事办好了,你就应该给你的主管报告,再由你的主管来向你的经理报告。显然,你的主管和经理也有处理这件事的权限,如果他们觉得事情很原创 2021-01-06 10:57:15 · 321 阅读 · 0 评论 -
android连续点击两次退出应用
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程package com.hbk.keyevent;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.view.KeyEvent;import android.widget.Toast;public class MainActivity extends Acti原创 2021-01-05 11:42:27 · 476 阅读 · 0 评论 -
android图片拖动并限制区域
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程布局文件activity_main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layo原创 2021-01-05 11:11:27 · 916 阅读 · 0 评论 -
android解决ListView图片闪动问题
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程在ListView加载数据显示列表时,由于getView方法的复用问题,会遇到加载图片闪动的问题,我们需要设置TAG,当发网络请求获取图片时,需要判断是否需要加载,并且在显示的时候,需要判断是否有必要显示。由于线程之间需要一定的时间,而getView复用问题,有可能用已经上滑或者下滑,此时线程获取的图片地址已经不是最新的。案例一、android工程布局,使用一个水平线性加一个垂直线性。左边一张图片,右边显原创 2021-01-05 09:24:22 · 614 阅读 · 0 评论 -
android解析json
package com.hbk.layoutdemo;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import android.test.AndroidTestCase;import android.util.Log;imp原创 2021-01-04 20:37:55 · 242 阅读 · 0 评论 -
android中的异步任务
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程还是以下载并安装最新APK例子package com.hbk.layoutdemo;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import android.app.Act原创 2021-01-04 15:59:56 · 480 阅读 · 0 评论 -
android中Handler的使用
android中Handler的使用分两个步骤:一个是构建消息,发送消息,发送消息之后会触发Handler的handleMessage(Message msg)方法。构建消息的时候,一般主要设置what标识及obj携带数据。构建消息的时候,使用Message.obtain()获取。案例demo布局一个ProgressBar,下面两个Button,垂直线性布局,请求网络获取数据,显示在下方的EditText中。<LinearLayout xmlns:android="http://sche原创 2021-01-04 09:52:10 · 309 阅读 · 1 评论 -
android下载并安装最新apk
package com.hbk.layoutdemo;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.text.DecimalFormat;import android.app.Activity;import android.app.Progress原创 2020-12-31 16:00:33 · 3400 阅读 · 0 评论 -
android安装apk的Intent
/** * 启动安装APK */ private void installAPK() { Intent intent = new Intent("android.intent.action.INSTALL_PACKAGE"); intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"); startActivity(intent); }其中file为apk文件File对象原创 2020-12-31 10:35:01 · 402 阅读 · 0 评论 -
android中远程请求网络接口
我们可以使用jdk自带的HttpURLConnection来发送get,post的请求,也可以使用HttpClient或者使用第三方volley布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientatio原创 2020-12-30 17:17:43 · 383 阅读 · 0 评论 -
android单元测试流程
在清单文件中的application内部加一个,在application外部标签加一个,不用背,固定的写法。<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <!-- 使用原创 2020-12-30 09:28:50 · 382 阅读 · 0 评论 -
android数据存储(二)
这一讲我们讲解使用sqlite数据库存储数据。布局如下<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android原创 2020-12-29 16:39:21 · 248 阅读 · 0 评论 -
android数据存储(一)
在android开发中,数据存储是项目中经常会用到的,我们需要掌握它。其中数据存储包括 sp存储,安卓内置存储和外置存储,数据库存储,以及远程存储。除了最后一个少用,其他几个都要学会。一、sp存储这种存储方式适合存数据小,这个翻译就是偏好设置,一般存储一些个人信息等。以键值对的方式生成在对应目录,文件名自定义,文件后缀是固定的.xml/data/data/packageName/shared_prefs/xxx.xml需要通过SharedPreferences接口进行操作案例:我们通过界原创 2020-12-29 11:17:47 · 359 阅读 · 0 评论 -
GridView实现九宫格效果
主要参数numColumns 定义多少列参数verticalSpacing 格子之间的间隙activity_main.xml<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gv_main" android:layout_width="fill_parent" android:layout_height="fill_parent"原创 2020-12-28 15:56:26 · 299 阅读 · 0 评论 -
使用ListView显示手机所有应用
最终显示效果,同时增加了点击监听事件和长按监听事件实现步骤布局使用垂直线性布局activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >原创 2020-12-28 10:55:38 · 511 阅读 · 0 评论 -
android获取手机所有应用
/* * 得到手机中所有应用信息的列表 * AppInfo * Drawable icon 图片对象 * String appName * String packageName */ protected List<AppInfo> getAllAppInfos() { List<AppInfo> list = new ArrayList<AppInfo>(); // 得到应用的packgeManager PackageMan原创 2020-12-28 10:35:18 · 425 阅读 · 0 评论 -
android中的style
首先需要了解android中的样式的作用,它是用来复用标签的,有点类似java中抽取公共属性,其他类继承即可拥有,android中的主题其实一堆样式的集合,android已经定义了一些样式,我们在布局文件中可以进行引用。示例我们的布局如果是一堆的TextView,只是文本不同,我们可以进行属性的抽取,并定义为样式。activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"原创 2020-12-28 10:05:00 · 1359 阅读 · 0 评论 -
android的列表布局ListView
一、ListView加ArrayAdapteritem_array_adapter.xml<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="50dp" android:textSiz原创 2020-12-19 16:34:34 · 363 阅读 · 1 评论 -
android帧布局
布局文件<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="250dp" android:layout_height="250dp"原创 2020-12-17 19:31:16 · 285 阅读 · 0 评论 -
android中的RelativeLayout
相对布局中含有对齐的概念,相对某一存在结构布局。一堆由align打头的还有反方向打头的举例<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <EditText android:id="@+id/原创 2020-12-16 16:37:52 · 304 阅读 · 1 评论 -
android中LinearLayout布局
在android开发中,学习难度大的是RelativeLayout,线性布局LinearLayout还是比较简单的。在线性布局中,有几个属性还是要学会。主要是android:gravity和android:layout_weight一个线性布局中放两个Button,显示的效果如下如果要想占满整个LinearLayout,则可以使用 android:layout_weight属性,相同则平分。<LinearLayout xmlns:android="http://schemas.androi原创 2020-12-16 15:37:27 · 293 阅读 · 0 评论 -
android界面UI学习(上)
主界面布局activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+原创 2020-12-16 11:44:28 · 324 阅读 · 0 评论 -
android实现打电话发短信
布局文件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="matc原创 2020-12-15 10:20:49 · 390 阅读 · 0 评论 -
activity的lanuchmode
在android里,有4种activity的启动模式,分别为:standard: 标准模式,一调用startActivity()方法就会产生一个新的实例。singleTop: 如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例,而只是调用Activity中的newInstance()方法。如果不位于栈顶,会产生一个新的实例。singleTask: 会在一个新的task中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。singleInstance: 这个跟singleTa原创 2020-12-14 20:26:56 · 308 阅读 · 0 评论 -
Activity的生命周期图
原创 2020-12-14 17:12:19 · 251 阅读 · 0 评论 -
android中的Activity的两种启动方法
Intent作为信使,在Activity中可以携带数据。点击一般调用的时候,开启SecondActivity,并把输入的数据显示出来。然后第二个界面点击一般返回,返回到第一个界面。布局入门级的简单activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_h原创 2020-12-14 16:51:51 · 318 阅读 · 0 评论 -
Gradle project sync failed的解决方法
开发工具android studio在运行项目的时候报如下错误:Error: Gradle project sync failed. Please fix your project and try again.编辑gradle-wrapper.properties文件,把路径写成正确的,有一个反斜杠要去掉。浏览器访问该网站,下载对应的版本把下载好的文件放到如下位置,目标位置有,则覆盖...原创 2020-02-17 20:14:32 · 42777 阅读 · 11 评论 -
android studio代码助手快捷键
习惯了eclipse开发,常用alt+/的代码助手快捷键,在android studio中默认的代码助手快捷键是ctrl+space,修改为alt+/的步骤如下。1.左上角点击File选项,找到Settings2.点击Settings后,找到Keymap3.点击Keymap后,找到Main menu,点击Main menu,找到Code4.点击Code,找到Completion,点击Com...原创 2020-02-17 19:22:55 · 571 阅读 · 0 评论