2014-09-10 10:21:06 xt4665699 阅读数 320
  • XML编程

    在现代的开发之中,XML技术无处不在,在各个开发框架中,也都到处充斥着XML配置文件的身影。本课程将为读者讲解XML的产生背景,并且详细分析了HTML与XML的区别、XML核心语法,重点在于XML的解析技术(DOM、SAX、DOM4J工具),同时讲解了如何在HTML页面利用JavaScript进行DOM解析实现页面动态开发。官方QQ群:612148723。

    4175 人正在学习 去看看 李兴华

 

Android开发应用程序时,如果应用程序需要访问网络权限,需要在 AndroidManifest.xml 中加入以下代码:

<uses-permission android:name=”android.permission.INTERNET”></uses-permission>

 

 

同样的如果用到其它的权限,也需要作出声明,部分权限列表如下:

 

android.permission.ACCESS_CHECKIN_PROPERTIES

 

允许读写访问”properties”表在 checkin数据库中,改值可以修改上传( Allows read/write access to the “properties” table in the checkin database, to change 

 

values that get uploaded)

 

android.permission.ACCESS_COARSE_LOCATION

 

允许一个程序访问CellID或WiFi热点来获取粗略的位置(Allows an application to access coarse (e.g., Cell-ID, WiFi) location)

 

android.permission.ACCESS_FINE_LOCATION

 

允许一个程序访问精良位置(如GPS) (Allows an application to access fine (e.g., GPS) location)

 

android.permission.ACCESS_LOCATION_EXTRA_COMMANDS

 

允许应用程序访问额外的位置提供命令(Allows an application to access extra location provider commands)

 

 

android.permission.ACCESS_MOCK_LOCATION

 

允许程序创建模拟位置提供用于测试(Allows an application to create mock location providers for testing)

 

android.permission.ACCESS_NETWORK_STATE

 

允许程序访问有关GSM网络信息(Allows applications to access information about networks)

 

android.permission.ACCESS_SURFACE_FLINGER

 

允许程序使用SurfaceFlinger底层特性 (Allows an application to use SurfaceFlinger’s low level features)

 

android.permission.ACCESS_WIFI_STATE

 

允许程序访问Wi-Fi网络状态信息(Allows applications to access information about Wi-Fi networks)

 

android.permission.ADD_SYSTEM_SERVICE

 

允许程序发布系统级服务(Allows an application to publish system-level services).

 

android.permission.BATTERY_STATS

 

允许程序更新手机电池统计信息(Allows an application to update the collected battery statistics)

 

android.permission.BLUETOOTH

 

允许程序连接到已配对的蓝牙设备(Allows applications to connect to paired bluetooth devices)

 

 

 

ACCESS_CHECKIN_PROPERTIES    允许在登入数据库的时候读写其中的属性表,并上传改变的值
ACCESS_COARSE_LOCATION    允许应用访问范围(如WIFI)性的定位
ACCESS_FINE_LOCATION    允许应用访问精确(如GPS)性的定位
ACCESS_LOCATION_EXTRA_COMMANDS    允许应访问额外的提供定位的指令
ACCESS_MOCK_LOCATION    允许应用创建用于测试的模拟定位提供者
ACCESS_NETWORK_STATE    允许应用访问网络上的信息
ACCESS_SURFACE_FLINGER    允许应用使用低版本视图的特征
ACCESS_WIFI_STATE    允许应用访问关羽Wi-Fi网络的信息
ACCOUNT_MANAGER    允许应用进入帐户认证
AUTHENTICATE_ACCOUNTS    允许应用为ACCOUNT_MANAGER扮演一个帐户认证系统 
BATTERY_STATS    允许应用去统计电源信息
BIND_APPWIDGET    允许应用告诉AppWidget哪个应用能够访问该AppWidget的数据
BIND_DEVICE_ADMIN    必须通过关机接收者的请求来确保只有系统能够与之交互
BIND_INPUT_METHOD    必须通过InputMethodService的请求来确保只有系统能够与之绑定
BIND_WALLPAPER    必须通过WallpaperService的请求来确保只有系统能够与之绑定
BLUETOOTH    允许应用去连接蓝牙设备
BLUETOOTH_ADMIN    允许应用找到与之连接的蓝牙设备
BRICK    被请求废止设备(非常危险)
BROADCAST_PACKAGE_REMOVED    允许应用发出一个程序包被移除的广播消息
BROADCAST_SMS    允许应用发出一个收到短信的消息
BROADCAST_STICKY    允许应用发出一个与intent相连的消息
BROADCAST_WAP_PUSH    允许应用发出一个收到WAP PUSH的广播消息
CALL_PHONE    允许应用启动一个用户确认电话被拨打而不通过拨打电话的用户界面的的拨打程序
CALL_PRIVILEGED    允许应用启动一个用户确认电话被拨打而不通过拨打电话的用户界面的的任意号码的拨打,包括紧急号码.
CAMERA    能够启动照相机设备的请求
CHANGE_COMPONENT_ENABLED_STATE    允许应用去改变一个应用是否是激活状态
CHANGE_CONFIGURATION    允许应用修改当前的配置,如本地设置
CHANGE_NETWORK_STATE    允许应用改变网络的连接状态
CHANGE_WIFI_MULTICAST_STATE    允许应用进入Wi-Fi的组播方式
CHANGE_WIFI_STATE    允许应用改变Wi-Fi的连接状态
CLEAR_APP_CACHE    允许应用清除所有安装在设备上的应用的缓存
CLEAR_APP_USER_DATA    允许应用清除使用者的信息资料
CONTROL_LOCATION_UPDATES    允许从广播设备来更新或不更新本地的消息
DELETE_CACHE_FILES    允许应用删除掉缓存文件
DELETE_PACKAGES    允许应用删除掉程序包
DEVICE_POWER    允许低权限的访问电源管理项
DIAGNOSTIC    允许应用诊断程序资源
DISABLE_KEYGUARD    允许应用禁用键盘锁
DUMP    允许应用从系统服务中恢复转储的信息
EXPAND_STATUS_BAR    允许应用扩大或缩小状态栏
FACTORY_TEST    如制造商测试的应用一样用终极权限用户运行
FLASHLIGHT    允许访问手电筒
FORCE_BACK    允许应用强制的返回操作而不论是不是最终的activity
GET_ACCOUNTS    允许应用访问账目服务中的统计清单
GET_PACKAGE_SIZE    允许应用查找出任何程序包使用的空间
GET_TASKS    允许应用找到关于当前或最近运行的任务和在哪些acitivities里运行
GLOBAL_SEARCH    这个权限可以被内容提供者用来允许使用全程搜索他们的数据
HARDWARE_TEST    允许访问硬件及周边设备.
INJECT_EVENTS    允许应用注入用户事件(键盘、触摸)到事件中然后提供给任意的窗口
INSTALL_LOCATION_PROVIDER    允许应用安装一个位置提供商到位置管理器中
INSTALL_PACKAGES    允许应用安装程序包.
INTERNAL_SYSTEM_WINDOW    允许应用打开被部分系统用户接口使用的窗口
INTERNET    允许应用打开网络套接口
KILL_BACKGROUND_PROCESSES    允许应用去呼叫killBackgroundProcesses(String).方法
MANAGE_ACCOUNTS    允许应用去管理帐户管理者中的重要清单
MANAGE_APP_TOKENS    允许应用去管理(创建、销毁、顺序)在窗口管理者中的应用
MASTER_CLEAR     
MODIFY_AUDIO_SETTINGS    允许应用修改全局音频设定
MODIFY_PHONE_STATE    允许改变拨打电话的状态-电源等
MOUNT_FORMAT_FILESYSTEMS    允许格式化可移除的存储仓库的文件系统
MOUNT_UNMOUNT_FILESYSTEMS    允许装备或解除可移除的存储仓库的文件系统
PERSISTENT_ACTIVITY    允许应用使它的activities更持久稳固
PROCESS_OUTGOING_CALLS    允许应用监督、限定或终止呼出的电话
READ_CALENDAR    允许应用读取用户的日历数据
READ_CONTACTS    允许应用读取用户的联系人数据
READ_FRAME_BUFFER    允许应用抓取屏幕和更多可获得的缓冲数据
READ_HISTORY_BOOKMARKS    允许应用去读取(非写)用户浏览历史和书签
READ_INPUT_STATE    允许应用去的当前键盘和控制的状态
READ_LOGS    允许应用读取低级别的系统日志文件
READ_OWNER_DATA    允许应用读取所有者的数据
READ_PHONE_STATE    允许读取电话的状态
READ_SMS    允许应用读取短信息.
READ_SYNC_SETTINGS    允许应用读取同步的设置
READ_SYNC_STATS    允许应用读取同步的统计数据
REBOOT    重新启动设备的请求
RECEIVE_BOOT_COMPLETED    允许应用接收在系统完成启动后发出的ACTION_BOOT_COMPLETED广播信息
RECEIVE_MMS    允许应用去监听多媒体信息并记录和对起进行处理
RECEIVE_SMS    允许应用去监听短消息并记录和对起进行处理
RECEIVE_WAP_PUSH    允许应用监听WAP push信息
RECORD_AUDIO

 

 

2016-12-30 14:05:36 qq_15062527 阅读数 2235
  • XML编程

    在现代的开发之中,XML技术无处不在,在各个开发框架中,也都到处充斥着XML配置文件的身影。本课程将为读者讲解XML的产生背景,并且详细分析了HTML与XML的区别、XML核心语法,重点在于XML的解析技术(DOM、SAX、DOM4J工具),同时讲解了如何在HTML页面利用JavaScript进行DOM解析实现页面动态开发。官方QQ群:612148723。

    4175 人正在学习 去看看 李兴华

android.permission.ACCESS_CHECKIN_PROPERTIES
//
允许读写访问”properties”表在checkin数据库中,改值可以修改上传
android.permission.ACCESS_COARSE_LOCATION 
//
允许一个程序访问CellIDWiFi热点来获取粗略的位置
android.permission.ACCESS_FINE_LOCATION 
//
允许一个程序访问精良位置(GPS)
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS 
//
允许应用程序访问额外的位置提供命令 
android.permission.ACCESS_MOCK_LOCATION 
//
允许程序创建模拟位置提供用于测试 
android.permission.ACCESS_NETWORK_STATE 
//
允许程序访问有关GSM网络信息
android.permission.ACCESS_SURFACE_FLINGER 
//
允许程序使用SurfaceFlinger底层特性
android.permission.ACCESS_WIFI_STATE 
//
允许程序访问Wi-Fi网络状态信息
android.permission.ADD_SYSTEM_SERVICE 
//
允许程序发布系统级服务 
android.permission.BATTERY_STATS 
//
允许程序更新手机电池统计信息 
android.permission.BLUETOOTH 
//
允许程序连接到已配对的蓝牙设备 
android.permission.BLUETOOTH_ADMIN 
//
允许程序发现和配对蓝牙设备 
android.permission.BRICK 
//
请求能够禁用设备(非常危险
android.permission.BROADCAST_PACKAGE_REMOVED 
//
允许程序广播一个提示消息在一个应用程序包已经移除后
android.permission.BROADCAST_STICKY 
//
允许一个程序广播常用intents 
android.permission.CALL_PHONE 
//
允许一个程序初始化一个电话拨号不需通过拨号用户界面需要用户确认
android.permission.CALL_PRIVILEGED 
//
允许一个程序拨打任何号码,包含紧急号码无需通过拨号用户界面需要用户确认
android.permission.CAMERA 
//
请求访问使用照相设备 
android.permission.CHANGE_COMPONENT_ENABLED_STATE 
//
允许一个程序是否改变一个组件或其他的启用或禁用
android.permission.CHANGE_CONFIGURATION 
//
允许一个程序修改当前设置,如本地化 

android.permission.CHANGE_NETWORK_STATE
//
允许程序改变网络连接状态 
android.permission.CHANGE_WIFI_STATE 
//
允许程序改变Wi-Fi连接状态
android.permission.CLEAR_APP_CACHE 
//
允许一个程序清楚缓存从所有安装的程序在设备中
android.permission.CLEAR_APP_USER_DATA 
//
允许一个程序清除用户设置 
android.permission.CONTROL_LOCATION_UPDATES 
//
允许启用禁止位置更新提示从无线模块 
android.permission.DELETE_CACHE_FILES 
//
允许程序删除缓存文件 
android.permission.DELETE_PACKAGES 
//
允许一个程序删除包 
android.permission.DEVICE_POWER 
//
允许访问底层电源管理 
android.permission.DIAGNOSTIC 
//
允许程序RW诊断资源
android.permission.DISABLE_KEYGUARD 
//
允许程序禁用键盘锁 
android.permission.DUMP 
//
允许程序返回状态抓取信息从系统服务 
android.permission.EXPAND_STATUS_BAR 
//
允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序
android.permission.FACTORY_TEST 
//
作为一个工厂测试程序,运行在root用户
android.permission.FLASHLIGHT 
//
访问闪光灯,android开发网提示HTC Dream不包含闪光灯
android.permission.FORCE_BACK 
//
允许程序强行一个后退操作是否在顶层activities
android.permission.FOTA_UPDATE 
//
暂时不了解这是做什么使用的,android开发网分析可能是一个预留权限.
android.permission.GET_ACCOUNTS 
//
访问一个帐户列表在Accounts Service
android.permission.GET_PACKAGE_SIZE 
//
允许一个程序获取任何package占用空间容量
android.permission.GET_TASKS 
//
允许一个程序获取信息有关当前或最近运行的任务,一个缩略的任务状态,是否活动等等
android.permission.HARDWARE_TEST 
//
允许访问硬件 
android.permission.INJECT_EVENTS 
//
允许一个程序截获用户事件如按键、触摸、轨迹球等等到一个时间流,android开发网提醒算是hook技术吧
android.permission.INSTALL_PACKAGES 
//
允许一个程序安装packages 
android.permission.INTERNAL_SYSTEM_WINDOW 
//
允许打开窗口使用系统用户界面 
android.permission.INTERNET 
//
允许程序打开网络套接字 
android.permission.MANAGE_APP_TOKENS 
//
允许程序管理(创建、催后、 z- order默认向z轴推移)程序引用在窗口管理器中
android.permission.MASTER_CLEAR 
//
目前还没有明确的解释,android开发网分析可能是清除一切数据,类似硬格机
android.permission.MODIFY_AUDIO_SETTINGS 
//
允许程序修改全局音频设置 
android.permission.MODIFY_PHONE_STATE 
//
允许修改话机状态,如电源,人机接口等 
android.permission.MOUNT_UNMOUNT_FILESYSTEMS 
//
允许挂载和反挂载文件系统可移动存储 
android.permission.PERSISTENT_ACTIVITY 
//
允许一个程序设置他的activities显示
android.permission.PROCESS_OUTGOING_CALLS 
//
允许程序监视、修改有关播出电话 
android.permission.READ_CALENDAR 
//
允许程序读取用户日历数据 
android.permission.READ_CONTACTS 
//
允许程序读取用户联系人数据 
android.permission.READ_FRAME_BUFFER 
//
允许程序屏幕波或和更多常规的访问帧缓冲数据 
android.permission.READ_INPUT_STATE 
//
允许程序返回当前按键状态 
android.permission.READ_LOGS 
//
允许程序读取底层系统日志文件 
android.permission.READ_OWNER_DATA 
//
允许程序读取所有者数据 
android.permission.READ_SMS 
//
允许程序读取短信息 
android.permission.READ_SYNC_SETTINGS 
//
允许程序读取同步设置 
android.permission.READ_SYNC_STATS 
//
允许程序读取同步状态 
android.permission.REBOOT 
//
请求能够重新启动设备 
android.permission.RECEIVE_BOOT_COMPLETED 
//
允许一个程序接收到 
android.permission.RECEIVE_MMS 
//
允许一个程序监控将收到MMS彩信,记录或处理
android.permission.RECEIVE_SMS 
//
允许程序监控一个将收到短信息,记录或处理 
android.permission.RECEIVE_WAP_PUSH 
//
允许程序监控将收到WAP PUSH信息
android.permission.RECORD_AUDIO 
//
允许程序录制音频 
android.permission.REORDER_TASKS 
//
允许程序改变Z轴排列任务
android.permission.RESTART_PACKAGES 
//
允许程序重新启动其他程序 
android.permission.SEND_SMS 
//
允许程序发送SMS短信
android.permission.SET_ACTIVITY_WATCHER 
//
允许程序监控或控制activities已经启动全局系统中
android.permission.SET_ALWAYS_FINISH 
//
允许程序控制是否活动间接完成在处于后台时 
android.permission.SET_ANIMATION_SCALE 
//
修改全局信息比例 
android.permission.SET_DEBUG_APP 
//
配置一个程序用于调试 
android.permission.SET_ORIENTATION 
//
允许底层访问设置屏幕方向和实际旋转 
android.permission.SET_PREFERRED_APPLICATIONS 
//
允许一个程序修改列表参数PackageManager.addPackageToPreferred()PackageManager.removePackageFromPreferred()方法
android.permission.SET_PROCESS_FOREGROUND 
//
允许程序当前运行程序强行到前台 
android.permission.SET_PROCESS_LIMIT 
//
允许设置最大的运行进程数量 
android.permission.SET_TIME_ZONE 
//
允许程序设置时间区域 
android.permission.SET_WALLPAPER 
//
允许程序设置壁纸 
android.permission.SET_WALLPAPER_HINTS 
//
允许程序设置壁纸hits 
android.permission.SIGNAL_PERSISTENT_PROCESSES 
//
允许程序请求发送信号到所有显示的进程中 
android.permission.STATUS_BAR 
//
允许程序打开、关闭或禁用状态栏及图标Allows an application to open, close, or disable the status bar and its icons.
android.permission.SUBSCRIBED_FEEDS_READ 
//
允许一个程序访问订阅RSS Feed内容提供
android.permission.SUBSCRIBED_FEEDS_WRITE 
//
系统暂时保留改设置,android开发网认为未来版本会加入该功能。
android.permission.SYSTEM_ALERT_WINDOW 
//
允许一个程序打开窗口使用 TYPE_SYSTEM_ALERT,显示在其他所有程序的顶层(Allows an application to open windows using the type TYPE_SYSTEM_ALERT, shown on top of all other applications. )
android.permission.VIBRATE 
//
允许访问振动设备 
android.permission.WAKE_LOCK 
//
允许使用PowerManager WakeLocks保持进程在休眠时从屏幕消失
android.permission.WRITE_APN_SETTINGS 
//
允许程序写入APN设置
android.permission.WRITE_CALENDAR 
//
允许一个程序写入但不读取用户日历数据 
android.permission.WRITE_CONTACTS 
//
允许程序写入但不读取用户联系人数据 
android.permission.WRITE_GSERVICES 
//
允许程序修改Google服务地图
android.permission.WRITE_OWNER_DATA 
//
允许一个程序写入但不读取所有者数据 
android.permission.WRITE_SETTINGS 
//
允许程序读取或写入系统设置 
android.permission.WRITE_SMS 
//
允许程序写短信 
android.permission.WRITE_SYNC_SETTINGS 
//
允许程序写入同步设置

2015-05-13 00:37:52 xzj662 阅读数 425
  • XML编程

    在现代的开发之中,XML技术无处不在,在各个开发框架中,也都到处充斥着XML配置文件的身影。本课程将为读者讲解XML的产生背景,并且详细分析了HTML与XML的区别、XML核心语法,重点在于XML的解析技术(DOM、SAX、DOM4J工具),同时讲解了如何在HTML页面利用JavaScript进行DOM解析实现页面动态开发。官方QQ群:612148723。

    4175 人正在学习 去看看 李兴华

XML在各种开发中都广泛应用,Android也不例外。作为承载数据的一个重要角色,读写XML成为Android开发中一项重要的技能。以下是在Android中使用xml保存数据(xml文件序列化)及使用pull解析xml文件的方法。 首先,我们需要读写sd卡,所以要加入权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

布局文件如下

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
android:id="@+id/btnsave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/anniu"
**android:onClick="SaveBtn"**
/>
android:id="@+id/btnread"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btnsave"
android:text="@string/anniu"
**android:onClick="ReadBtn"**
/>

java代码如下

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlSerializer;
import android.os.Bundle;
import android.os.Environment;
import android.util.Xml;
import android.view.View;
import android.widget.Toast;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
***
* 生成xml文件,并保存到sd卡
*/
public void SaveBtn(View v) {
try {
XmlSerializer serializer = Xml.newSerializer();
File file = new File(Environment.getExternalStorageDirectory(),
"info");
FileOutputStream os = new FileOutputStream(file);
serializer.setOutput(os, "utf-8");
serializer.startDocument("utf-8", true);
serializer.startTag(null, "list");//
serializer.startTag(null, "user");//
serializer.attribute(null, "id", "1");//id=1>
serializer.startTag(null, "username");//
serializer.text("用户名:554849416");//用户名:554849416
serializer.endTag(null, "username" );//
serializer.startTag(null, "password");//
serializer.text( "密码:12345678");//密码:12345678
serializer.endTag(null, "password");//
serializer.endTag(null, "user");//
serializer.endTag(null, "list");//
serializer.endDocument();
os.close();
Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_LONG).show();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
Toast.makeText(MainActivity.this, "保存失败", Toast.LENGTH_LONG).show();
}
}
/*
* pull解析xml文件
*/
public void ReadBtn(View v) throws Exception{
String str="";
File file = new File(Environment.getExternalStorageDirectory()+"/info.xml");
InputStream in = new FileInputStream(file);
XmlPullParser parser = Xml.newPullParser();
parser.setInput(in,"utf-8");
int type = parser.getEventType();
while(type != XmlPullParser.END_DOCUMENT ){
switch (type) {
case XmlPullParser.START_TAG:
if("list".equals(parser.getName())){
}else if("user".equals(parser.getName())){
str += parser.getAttributeValue(0);
}else if("username".equals(parser.getName())){
str += parser.nextText();
}else if("password".equals(parser.getName())){
str += parser.nextText();
}
break;
case XmlPullParser.END_TAG:
if("user".equals(parser.getName())){
}
default:
break;
}
type = parser.next();
}
Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show();
}**
}

“`

以上就是xml读写的简单使用,代码很简单就不做解释了。

2018-10-10 09:55:10 xianKOG 阅读数 39
  • XML编程

    在现代的开发之中,XML技术无处不在,在各个开发框架中,也都到处充斥着XML配置文件的身影。本课程将为读者讲解XML的产生背景,并且详细分析了HTML与XML的区别、XML核心语法,重点在于XML的解析技术(DOM、SAX、DOM4J工具),同时讲解了如何在HTML页面利用JavaScript进行DOM解析实现页面动态开发。官方QQ群:612148723。

    4175 人正在学习 去看看 李兴华

运行时权限介绍

Android 的权限有上百种,分为 普通权限和危险权限。
Android 6.0之后加入了运行权限。对于普通权限,只需要在AndroidMmanifest.xml 中添加权限声明就好了。对于危险权限,需要使用到运行时权限。
下列表是Android中所有的危险权限,一共9组24个权限:
在这里插入图片描述

需要注意的是,我们在进行运行时权限处理时使用的是权限名,但是用户一旦授权,那么该权限对应的权限组内的所有的其他权限也会同时被授权。

运行时权限的使用

if(ContextCompat.checkSelfPermission
	(MainActivity.this, Maniefest.permission.CALL_PHONE)
	 != PackageManager.PERMISSION_GRANTED){  //CALL_PHONE 权限是否运行
	ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE},1);
}else {
	call();
}

private void call(){
	try{
		Intent intent = new Intent(Intent.ACTION_CALL);
		intent.setData(Uri.parse("tel:10086"));
		startActivity(intent);
	}catch (SecurityException e){
		e.printStackTrace();
	}
}

//ActivityCompat.requestPermissions 方法的回调
@Override
public void onRequestPermissionResult(int requestCode, String[] permissions, int[] grantResults){
	switch(requestCode) {
		case 1:
			if(grantResults.length >0 && grantResults[0] == packageManager.PERMISSION_GRANTED){
				call();
			}else {
				Toast.make(this,"you denied the permission", Toast.LENGTH_SHORT).show();
			}
	}
}
2012-10-12 09:55:23 dztdztdzt 阅读数 58
  • XML编程

    在现代的开发之中,XML技术无处不在,在各个开发框架中,也都到处充斥着XML配置文件的身影。本课程将为读者讲解XML的产生背景,并且详细分析了HTML与XML的区别、XML核心语法,重点在于XML的解析技术(DOM、SAX、DOM4J工具),同时讲解了如何在HTML页面利用JavaScript进行DOM解析实现页面动态开发。官方QQ群:612148723。

    4175 人正在学习 去看看 李兴华
应用获得系统权限:
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
1. 在应用程序的AndroidManifest.xml中的manifest节点中加入
android:sharedUserId="android.uid.system"这个属性。
2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行。
3. 使用mm命令来编译,生成的apk就有修改系统权限了


cm9源码测试 可行。

获得系统权限后才能调用
系统的重启
Intent intent = new Intent(Intent.ACTION_REBOOT);
intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
系统的关机
Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

其实用的是
/frameworks/base/services/java/com/android/server/ShutdownActivity.java
为什么不能直接调用里面的
ShutdownThread.reboot(ShutdownActivity.this, null, mConfirm);
貌似到了关闭内核时候会失败,必须经过ShutdownActivity。
以上经过测试, android系统位4.0.

但是,只能push到/system/app/下,不能安装此app

android运行时权限

阅读数 182

Android访问权限

阅读数 343

没有更多推荐了,返回首页