【Android 初学者】权限调用,手把手教你们启用权限

来源:互联网 发布:阿里云服务器安全问题 编辑:程序博客网 时间:2024/06/08 04:47

   说起调用权限,就是意图组件!(唯一和用户交互的组件)


意向组件(不属于四大核心组件)作用:

1,指令输出,通过反射读取路径。
2,
实现Android的应用组件之间的交互和通信:

使用手机  →打电话,发短信,听歌,上网,→ 意向  →启用短信,电话,听歌,上网等相应应用组件

属性:
操作:要执行的动作(与输入连在一起)
数据:执行动作要操作的数据
类型:显示指定意向的数据类型
类别:类别,被执行动作的附加信息
演员:包含所有附加信息的集合
成分:指定意向的目标组件的类名称(差不多淘汰)

本文章讲解:

一,打开应用程序,显示一张精美的背景图,再跳转主页面

(参考支付宝,QQ,微信等应用程序)

如图:先显示一张背景图片,几秒后再跳转主页面

 

二,如上图,实现打电话



三,发短信与群发短信(基本河蟹了,但是根过的手机可用,





因为批量发送属于骚扰的恶意程序,谁也不想看到手机有成百上千条骚扰短信吧?!)


四,打开网页(工作室自带的虚拟机测试不稳定,日食的稳定打开网页,大家也可以自己去网上找个其他的虚拟机,或者用手机测试)



五,往虚拟机的SD卡添加文件,实现:播放音乐,安装APK

卸载APK几乎不用,都是长按促发卸载功能。

(前面四个上代码,很简单的,第五详细讲解)


在自己的虚拟机上测试:
1,在java的环境变量上,设置机器人的环境变量
ANDROID_HOME
E:\ Android的\ SDK


PATH(在JDK和mysql的的基础上加的; 号可以断开)
D:\的Java \ jdk1.8.0_91 \ BIN; D:\ mysql5.6 \ BIN; E:\ Android的\ SDK \平台工具; E:\ Android的\ SDK \工具
设置好后,应该有这个图标的


2,新建虚拟机(略),打开它,往桌面放一个APK测试



点击左上的虚拟机,再看到右边的文件夹,可见:存储SD卡


添加的MP3可见,添加APK一样



安装APK:



卸载


当然,名字是要修改的!从项目4,到爱丽丝桌面主题,到QQ萌化的apk


-------------------------------------------------- -----------------------------------------------

所有文件:



MainActivity.java

包com.open_open.androidch_07_2;进口android.app.Activity;进口android.content.Intent;进口android.net.Uri;进口android.support.v7.app.AppCompatActivity;进口android.os.Bundle;进口android.telephony.SmsManager;进口android.view.View;进口android.widget.EditText;公共类MainActivity延伸活动{    私人的EditText setValues方法;    @覆盖    保护无效的onCreate(捆绑savedInstanceState){        super.onCreate(savedInstanceState);        的setContentView(R.layout.activity_main);        setValues方法=(EditText上)findViewById(R.id.setValues);    }//电话拨号    公共无效testOne(查看视图){        //跳出拔号界面!        意向意图=新意图(Intent.ACTION_CALL,Uri.parse(“电话:”+ setValues.getText()的toString()));        startActivity(意向);    }//发短信    公共无效testTwo(查看视图){       意向意图=新意图(Intent.ACTION_SENDTO,Uri.parse(“smsto:”+ setValues.getText()的toString()));        intent.putExtra(“SMS_BODY”,“你好,Android的!”);        startActivity(意向);    }//发信息    公共无效testTwo_2(查看视图){        SmsManager短信= SmsManager.getDefault();        的for(int i = 0;我<5;我++){            sms.sendTextMessage(“smsto:”+ setValues.getText()的toString(),空,                    “这是一个测试!”,NULL,NULL);        }    }//打开网页    公共无效testThree(查看视图){        意向意图=新意图(Intent.ACTION_VIEW,Uri.parse(“http://www.baidu.com”));        startActivity(意向);    }//播放音乐    公共无效testFour(查看视图){        意向意图=新意图(Intent.ACTION_VIEW);        intent.setDataAndType(Uri.parse(“文件:///sdcard/Oranje.mp3”),“音频/ MP3”);        startActivity(意向);    }//安装APK QQ    公共无效testFive(查看视图){        意向意图=新的Intent();        intent.setAction(Intent.ACTION_VIEW);        intent.setDataAndType(Uri.parse(“文件:///sdcard/ludou.apk”),                “应用程序/ vnd.android.package归档”);        startActivity(意向);    }//卸载APK androidch04    公共无效testSix(查看视图){        意向意图=新意图(Intent.ACTION_DELETE,Uri.parse                (“包:com.example.ludou”));        startActivity(意向);    }}

AndroidMainfest.xml(权限调用)

<?XML版本=“1.0”编码=“UTF-8”?><清单的xmlns:机器人=“http://schemas.android.com/apk/res/android”    包=“com.open_open.androidch_07_2”><! - 权限开启:拨打电话,发送邮件,连接网络,安装APK,卸载的apk  - >    <使用许可权的android:NAME =“android.permission.CALL_PHONE”/>    <使用许可权的android:NAME =“android.permission.SEND_SMS”/>    <使用许可权的android:NAME =“android.permission.INTERNET对”/>    <使用许可权的android:NAME =“android.permission.MOUNT_UNMOUNT_FILESYSTEMS”/>    <使用许可权的android:NAME =“android.permission.WRITE_EXTERNAL_STORAGE”/>    <应用        机器人:allowBackup =“真”        机器人:图标=“@的mipmap / ic_launcher”        机器人:标签=“@字符串/ APP_NAME”        机器人:supportsRtl =“真”        机器人:主题=“@风格/ AppTheme”>        <活动的android:NAME =“MainActivity。”>            <意图过滤器>                 <行动机器人:名字=“android.intent.action.MAIN”/>                <类别的Android:名称=“。android.intent.category DEFAULT ”/>            </意图过滤器>        </活动>        <活动的android:NAME =“WelcomeActivity。”>            <意图过滤器>                <行动机器人:名字=“android.intent.action.MAIN”/>                <类机器人:名字=“android.intent.category.LAUNCHER”/>            </意图过滤器>        </活动>       <! -  <活动的android:“WelcomeActivity”NAME = />  - >    </应用></清单>

WelcomeActivity.java(背景页面的方法

包com.open_open.androidch_07_2;进口android.app.Activity;进口android.content.Intent;进口android.os.Bundle;公共类WelcomeActivity延伸活动{//定义一个时间长度的变量    INT大小= 0;    @覆盖    保护无效的onCreate(捆绑savedInstanceState){        super.onCreate(savedInstanceState);        的setContentView(R.layout.activity_welcome);        getWindow()的setType(getWindow()FEATURE_NO_TITLE。);        新主题(新的Runnable接口(){            @覆盖            公共无效的run(){                而(大小<3){                    尝试{                        视频下载(1000);                        大小++;                    }赶上(InterruptedException的E){                        e.printStackTrace();                    }                }                意向意图=新意图(WelcomeActivity.this,MainActivity.class);                startActivity(意向);                完();            }        })。开始();    }}

activity_main.xml中(主页面布局)

<?XML版本=“1.0”编码=“UTF-8”?><LinearLayout中的xmlns:机器人=“http://schemas.android.com/apk/res/android”    的xmlns:工具=“http://schemas.android.com/tools”    机器人:layout_width =“match_parent”    机器人:layout_height =“match_parent”    机器人:方向=“垂直”>    <的EditText        机器人:ID =“@ + ID / setValues方法”        机器人:layout_width =“match_parent”        机器人:layout_height =“WRAP_CONTENT”        机器人:提示=“请输入内容”        机器人:TEXTSIZE =“28sp”        机器人:重力=“左”        机器人:layout_marginTop =“5SP”/>    <按钮        机器人:layout_width =“match_parent”        机器人:layout_height =“WRAP_CONTENT”        机器人:文字=“拨打电话”        风格=“@风格/ myButton的”        安卓的onClick =“testOne”/>    <按钮        机器人:layout_width =“match_parent”        机器人:layout_height =“WRAP_CONTENT”        机器人:文字=“发送短信一”        风格=“@风格/ myButton的”        安卓的onClick =“testTwo”/>    <按钮        机器人:layout_width =“match_parent”        机器人:layout_height =“WRAP_CONTENT”        机器人:文字=“发送短信二”        风格=“@风格/ myButton的”        安卓的onClick =“testTwo_2”/>    <按钮        机器人:layout_width =“match_parent”        机器人:layout_height =“WRAP_CONTENT”        机器人:文本=“打开网页”        风格=“@风格/ myButton的”        安卓的onClick =“testThree”        />    <按钮        机器人:layout_width =“match_parent”        机器人:layout_height =“WRAP_CONTENT”        机器人:文字=“播放音乐”        风格=“@风格/ myButton的”        安卓的onClick =“testFour”/>    <按钮        机器人:layout_width =“match_parent”        机器人:layout_height =“WRAP_CONTENT”        机器人:文字=“安装的.apk”        风格=“@风格/ myButton的”        安卓的onClick =“testFive”/>    <按钮        机器人:layout_width =“match_parent”        机器人:layout_height =“WRAP_CONTENT”        机器人:文字=“卸载的.apk”        风格=“@风格/ myButton的”        安卓的onClick =“testSix”/></ LinearLayout中>

activity_welcome.xml(背景页面布局,其实就一个背景设置)

<?XML版本=“1.0”编码=“UTF-8”?><LinearLayout中的xmlns:机器人=“http://schemas.android.com/apk/res/android”    的xmlns:工具=“http://schemas.android.com/tools”    机器人:layout_width =“match_parent”    机器人:layout_height =“match_parent”    机器人:背景=“@绘制/梅子”></ LinearLayout中>

值文件夹:自定义样式:mystyle.xml
<?XML版本=“1.0”编码=“UTF-8”?><资源>    <样式名称=“myButton的”父=“机器人:Widget.Button”>        <项目名称=“机器人:TEXTSIZE”> 26sp </项目>        <项目名称=“机器人:文字颜色”> @色/ colorPrimary </项目>        <项目名称=“机器人:layout_marginTop”> 3SP </项目>        <项目名称=“机器人:引力”>中心</项目>        <项目名称=“机器人:layout_margin”> 5SP </项目>    </样式></资源>




1 0
原创粉丝点击