一、实现简单拨号
拨号界面:
利用intent进行拨号,实现代码:
此时启动,拨号发生错误:
因为没有权限,不能拨号,因此需要先获得权限。
首先在配置文件中设置权限:
<uses-permission android:name="android.permission.CALL_PHONE"/>
之后在类中加上版本号判断方法和权限判断方法:
protected boolean shouldAskPermissions(){
return (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1);
}
protected void askPermissions(){
String[] permissions = {
"android.permission.CALL_PHONE"
};
int requestCode = 200;
requestPermissions(permissions, requestCode);
}
最后在OnCreate()
中进行调用:
if (shouldAskPermissions()){
askPermissions();
}
此时进行拨号,会要求获取权限:
成功拨号:
二、实现短信发送
界面设计:
在AndroidManifest
中注册权限:
<uses-permission android:name="android.permission.SEND_SMS"/>
之后在类中加上版本号判断方法和权限判断方法,进行判断:
最后利用content
发送短信:
btn_sendMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String phone = String.valueOf(sendM_phoneNum.getText()); // 电话
String content = String.valueOf(sendM_message.getText()); // 信息
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:"+phone));
intent.putExtra("sms_body", content);
startActivity(intent);
}
});
进行测试:
成功跳转至短信界面:
三、调用照相机
菜单界面:
在AndroidMainfest
中加入照相机权限:
<uses-permission android:name="android.permission.CAMERA"/>
在菜单界面请求权限:
最后在点击事件中调用:
@Override
public void onClick(View v) {
Intent intent = new Intent();
switch (v.getId()){
case R.id.image_dial:
intent.setClass(this, DialActivity.class);
break;
case R.id.image_sendMessage:
intent.setClass(this, SendMessageActivity.class);
case R.id.image_openCamera:
intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
}
startActivity(intent);
}
测试,进入菜单界面后询问权限:
点击照相机,成功进入相机:
四、百度地图的调用
1. 申请SDK
百度地图Android SDK提供的所有服务是免费的,接口使用无次数限制。但是需申请密钥(key)后, 才可使用百度地图Android SDK。而且必须要注册一个百度账号。
网址: http://lbsyun.baidu.com/apiconsole/key
获取包名:
申请成功:
2. 配置环境
将下载的lib
文件夹中的.jar
文件复制到项目中app/lib
中:
在app/src/main
中新建文件夹jniLibs
:
将下载的lib
文件夹中的除了.jar
文件复制到jniLibs
中:
在app目录下的build.gradle文件中android块中配置sourceSets标签,如果没有使用该标签则新增,详细配置代码如下:
sourceSets {
main {
jniLibs.srcDir 'libs'
}
}
将jar包作为类库添加到Android Studio的依赖库中:
最后在AndroidMainfest.xml
配置文件中添加开发密钥:
3. 调用百度地图
界面设计:
在AndroidMainifest
中添加权限:
在onCreate()
中动态获取权限:
创建一个类继承Application
,用于地图初始化:
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
SDKInitializer.initialize(this);
//自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
//包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
SDKInitializer.setCoordType(CoordType.BD09LL);
在AndroidManifest.xml
文件中声明该Application:
在地图Activity中管理MapView
的声明周期:
public class MapActivity extends AppCompatActivity {
private MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
if (shouldAskPermissions()){
askPermissions();
}
mMapView = (MapView) findViewById(R.id.bmapView);
}
protected boolean shouldAskPermissions(){
return (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1);
}
protected void askPermissions(){
String[] permissions = {
"android.permission.INTERNET",
"android.permission.ACCESS_NETWORK_STATE"
};
int requestCode = 200;
requestPermissions(permissions, requestCode);
}
@Override
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
}
运行: