美文网首页Android开发积累
Android studio的一些坑(持续更新...)

Android studio的一些坑(持续更新...)

作者: zheng_zq | 来源:发表于2019-01-30 17:44 被阅读253次

    (一)动态权限

    先来看看安卓的权限:
    CALENDAR(日历)
    READ_CALENDAR
    WRITE_CALENDAR
    CAMERA(相机)
    CAMERA
    CONTACTS(联系人)
    READ_CONTACTS
    WRITE_CONTACTS
    GET_ACCOUNTS
    LOCATION(位置)
    ACCESS_FINE_LOCATION
    ACCESS_COARSE_LOCATION
    MICROPHONE(麦克风)
    RECORD_AUDIO
    PHONE(手机)
    READ_PHONE_STATE
    CALL_PHONE
    READ_CALL_LOG
    WRITE_CALL_LOG
    ADD_VOICEMAIL
    USE_SIP
    PROCESS_OUTGOING_CALLS
    SENSORS(传感器)
    BODY_SENSORS
    SMS(短信)
    SEND_SMS
    RECEIVE_SMS
    READ_SMS
    RECEIVE_WAP_PUSH
    RECEIVE_MMS
    STORAGE(存储卡)
    READ_EXTERNAL_STORAGE
    WRITE_EXTERNAL_STORAGE

    动态权限效果图(以定位权限为例):

    微信图片_20190130173051.png
    微信图片_20190130173055.png

    如果不加入动态权限,则需要自己去设置里给权限,否则app可能会闪退。
    贴上demo代码:
    MainActivity:

    package com.example.mrzheng.dontaiquanxian01;
    
    import android.Manifest;
    import android.content.pm.PackageManager;
    import android.support.annotation.NonNull;
    import android.support.v4.app.ActivityCompat;
    import android.support.v4.content.ContextCompat;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},200);
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION)
                    != PackageManager.PERMISSION_GRANTED){//未开启定位权限
                //开启定位权限,200是标识码
                ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},200);
            }else{
                Toast.makeText(MainActivity.this,"已开启定位权限",Toast.LENGTH_LONG).show();
            }
        }
    
        @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
            switch (requestCode){
                case 200://刚才的识别码
                    if(grantResults[0] == PackageManager.PERMISSION_GRANTED){//用户同意权限,执行我们的操作
                    }else{//用户拒绝之后,当然我们也可以弹出一个窗口,直接跳转到系统设置页面
                        Toast.makeText(MainActivity.this,"未开启定位权限,请手动到设置去开启权限",Toast.LENGTH_LONG).show();
                    }
                    break;
                default:break;
            }
        }
    }
    

    AndroidManifest.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.example.mrzheng.dontaiquanxian01">
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme"
            tools:ignore="GoogleAppIndexingWarning">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    

    (二)去掉顶部烦人的标题框和改掉默认的绿色

    不去掉的效果图:

    QQ图片20190130174250.png
    去掉之后的效果图:
    QQ图片20190130174258.png
    • 去掉顶部的标题框
      打开dares--values--styles.xml后,改成NoActionBar即可。


    • 改掉默认的绿色(有些版本可能是其他颜色)


      image.png

      改成自己喜欢的颜色即可。

    (三)如何正确打开别人的项目

    如果直接Open别人的项目,可能会有一系列报错。
    建议先New一个空项目后再依次选择菜单“File”——“New”——“Import Module”,按提示导入别人的项目。

    相关文章

      网友评论

        本文标题:Android studio的一些坑(持续更新...)

        本文链接:https://www.haomeiwen.com/subject/kxmcsqtx.html