Android Studio实现简单拨号,短信发送,照相机调用,地图打开的功能(Android Studio学习笔记3)


一、实现简单拨号

拨号界面:
在这里插入图片描述


利用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
在这里插入图片描述

获取SHA1
在这里插入图片描述

‘keytool’ 不是内部或外部命令的解决:
在这里插入图片描述

获取包名:
在这里插入图片描述

申请成功:
在这里插入图片描述


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();
    }

}

运行:
请添加图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Baker_Streets

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值