一、实现简单拨号
拨号界面:

利用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();
}
}
运行:


本文介绍了如何使用AndroidStudio实现拨打电话、发送短信、调用照相机及集成百度地图等核心功能。通过具体步骤展示了权限申请、环境配置及功能实现的方法。



&spm=1001.2101.3001.5002&articleId=120405642&d=1&t=3&u=611c98d99fcb4cbc8e3474692526f5d6)
5190

被折叠的 条评论
为什么被折叠?



