目录
1.广播
和我们常听说的广播类似,通过调节不同的电台频率,来接收不同的信息。在安卓当中,很多信息都可以发送给接收它信息的应用,也就是在同一‘频率’上的收音机,从而来进行对应的提示或者操作。
1.广播的创建
2.简单的广播示例
新建MyReceiver广播类
package com.hnucm.android_611;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
Log.i("MyReceiver","MyReceiver");
}
}
MainActivity
注册广播,然后定义广播(以下定义广播内容为:网络状态发生改变)
package com.hnucm.android_611;
import androidx.appcompat.app.AppCompatActivity;
import android.content.IntentFilter;
import android.media.MediaParser;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyReceiver myReceiver=new MyReceiver();
IntentFilter intentFilter=new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(myReceiver,intentFilter);
}
}
示例如下
3.实现Activity之间的广播发送
再建一个MainActivity2
在MainActivity和MainActivity2中都增加一个按钮控件,分别用来作为跳转和发送广播的操作
MainActivity.java
MainActivity2.java
下面是示例
2.百度地图
1.导入百度地图依赖包
先去官网下载百度地图SDK
简单的分析
图像处理C,C++比JAVA快,所以都使用C,C++来编译成SO文件实现
找到工程目录中 app 目录下的 libs 文件夹,将刚刚下好的开发包中的libs中的文件放进来
在Android Studio中先导入依赖包,在 build.gradle 文件中的android节点下 加入如下代码
sourceSets {
main {
jniLibs.srcDir 'libs'
}
}
发现项目中多了这个文件夹
点击 jniLibs 文件夹下的 BaiduLBS_Android.jar 文件,并右键 Add as Library.加入jar包
百度地图SDK就导入完成了。
2.注册和获取密钥
1.获取sha1值
先找到c盘 user 用户名下的.android 文件夹
打开cmd命令行切到该目录
输入一下命令
keytool -list -v -keystore debug.keystore
默认密码android (全部小写)
找到SHA1值
2.包名
在manifest文件中找到包名并复制
3.创建应用
在控制台应用管理中选择我的应用,然后创建应用
应用类型选择Android SDK
将刚刚准备的sha1值和包名写入
点击得到密钥
3.配置key
在application节点下输入下面的meta-data标签,并输入在百度地图注册的key
添加相应的权限
<!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划, POI检索等 -->
<uses-permission android:name="android.permission.INTERNET" /><!-- 获取网络状态,根据网络状态切换进行数据请求网络转换 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了 外置存储区域,则需要申请该权限,否则不需要 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 写外置存储。如果开发者使用了离线地图,并且数据写在外置存储区 域,则需要申请该权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
创建MyApplication类继承系统的Application类并重写oncreate方法,使用SDK前的初始化
Application的onCreate()方法在应用程序启动时就会执行,比AppCompatActivity中的onCreate()方法还要早
package com.hnucm.android_611;
import android.app.Application;
import com.baidu.mapapi.CoordType;
import com.baidu.mapapi.SDKInitializer;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 应用程序启动就会执行
// 初始化的事情
//在使用SDK各组件之前初始化context信息,传入 ApplicationContext
SDKInitializer.initialize(this);
//自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型。
// 包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
SDKInitializer.setCoordType(CoordType.BD09LL);
}
}
在application节点下添加name属性
4.添加地图
在布局文件中添加地图组件
然后运行程序出现地图表示百度地图配置成功
5.地图核心功能
先获得地图控件。
1.设置缩放级别
核心代码
MapStatus.Builder builder = new MapStatus.Builder();
// 设置缩放级别,中心点位置
builder.zoom(18.0f);
mBaiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
2.设置中心点位置
这句话可以设置中心点的位置
LatLng cenpt = new LatLng(28.135339, 112.900747);
LatLng cenpt = new LatLng(28.135339, 112.900747);
MapStatus.Builder builder = new MapStatus.Builder();
// 设置缩放级别,中心点位置
builder.zoom(18.0f)
.target(cenpt);
mBaiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
更多的功能,可以前往官方文档查看,目前我的课设不需要这个功能,就先不研究了…