android一些系统相关的东西
添加快捷方式和删除快捷方式:
private void addShortcut() {
Intent shortcut = new Intent(
"com.android.launcher.action.INSTALL_SHORTCUT");
// 快捷方式的名称
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,
getString(R.string.app_name));
shortcut.putExtra("duplicate", false); // 不同意反复创建
// 指定当前的Activity为快捷方式启动的对象
ComponentName comp = new ComponentName(this.getPackageName(),
getClass().getName());
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(
Intent.ACTION_MAIN).setComponent(comp));
// 快捷方式的图标
ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(
this, R.drawable.icon);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);
sendBroadcast(shortcut);
}
/**
* 删除程序的快捷方式。
*/
private void deleteShortcuts() {
Intent shortcut = new Intent(
"com.android.launcher.action.UNINSTALL_SHORTCUT");
// 快捷方式的名称
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,
getString(R.string.app_name));
// 指定当前的Activity为快捷方式启动的对象
ComponentName comp = new ComponentName(this.getPackageName(),
getClass().getName());
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(
Intent.ACTION_MAIN).setComponent(comp));
sendBroadcast(shortcut);
}
发邮件:
public boolean sendEmail(String to[], String subject, String body,
String attachementFilePath) {
final Intent emailIntent = new Intent(
android.content.Intent.ACTION_SEND);
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, to);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
if (attachementFilePath != null) {
Uri attachmentUri = null;
try {
File file = new File(attachementFilePath);
if (file == null) {
Log.d("[RC] Mail", "File error: " + attachementFilePath);
} else if (!file.exists()) {
Log.d("[RC] Mail", "File does not exist: "
+ attachementFilePath);
} else if (!file.canRead()) {
Log.d("[RC] Mail", "File can't be read: "
+ attachementFilePath);
} else if (!file.isFile()) {
Log.d("[RC] Mail", "Invalid file: " + attachementFilePath);
} else {
attachmentUri = Uri.fromFile(file);
Log.d("[RC] Mail", "Attachement path[size=" + file.length()
+ "]: " + attachementFilePath);
Log.d("[RC] Mail",
"Attachement URI: " + attachmentUri.toString());
}
} catch (java.lang.Throwable ex) {
Log.e("[RC] Mail", "Error: " + ex.toString());
} if (attachmentUri != null) {
emailIntent.putExtra(Intent.EXTRA_STREAM, attachmentUri);
}
}
emailIntent.setType(PLAIN_TEXT);
List<ResolveInfo> availableSoft = (List<ResolveInfo>) mContext
.getPackageManager().queryIntentActivities(emailIntent,
PackageManager.MATCH_DEFAULT_ONLY);
if (availableSoft.size() <= 0) {
return false;
}
mContext.startActivity(Intent.createChooser(emailIntent, mContext
.getResources().getString(R.string.menu_sendEmail))); return true;
}
默认使用Google chrome打开WebView:
//new Intent(Intent.ACTION_VIEW, uri)
public void startActiviyByChromeIfExists(Context context,
Intent intent) { try {
Log.d("startActiviyByChromeIfExists",
"Intent Scheme: " + intent.getScheme());
} catch (Exception e) {
} if (context != null && intent != null) {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
List<ResolveInfo> availableSoft = (List<ResolveInfo>) context
.getPackageManager().queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo info : availableSoft) {
if ("com.android.chrome".equals(info.activityInfo.packageName)) {
intent.setComponent(new ComponentName(
info.activityInfo.packageName,
info.activityInfo.name));
context.startActivity(intent);
return;
}
}
if (availableSoft.size() == 0) {
try {
Toast.makeText(mContext, R.string.setting_no_browser_installed, Toast.LENGTH_LONG).show();
} catch (Exception e) {
Log.e("startActiviyByChromeIfExists", e.getMessage());
} } else {
context.startActivity(intent);
}
}
}
声明权限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
关机广播:
<receiver android:name=".ShutdownReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_SHUTDOWN"/>
</intent-filter>
</receiver>
接受开机广播:
<receiver android:name="BootBroadcast" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
android一些系统相关的东西的更多相关文章
- input系统——android input系统
AndroidInput系统--JNI NativeInputManager InputManger InputReader AndroidInput系统--InputReader AndroidIn ...
- 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)
Android 的窗口管理系统 (View, Canvas, WindowManager) 在图解Android - Zygote 和 System Server 启动分析一 文里,我们已经知道And ...
- Android动画学习(一)——Android动画系统框架简介
2015-11-09补充:Drawable Animation极有可能是Frame Animation 这几天在找工作,面试的时候被问到了Android动画,之前完全没接触过这部分,直接给懵了,当然其 ...
- 使用kvm虚拟出Centos6.5系统相关步骤
使用kvm虚拟出Centos6.5系统相关步骤 kvm是啥东西,亲们自行百度哇,一两句话也说不清楚,直接进主题使用宿主机虚拟出一台centos6.5的系统,当然其他系统也可以的,考虑到企业常用服务器系 ...
- 图解Android - Android GUI 系统 (1) - 概论
Android的GUI系统是Android最重要也最复杂的系统之一.它包括以下部分: 窗口和图形系统 - Window and View Manager System. 显示合成系统 - Surfac ...
- 图解Android - Android GUI 系统 (5) - Android的Event Input System
Android的用户输入处理 Android的用户输入系统获取用户按键(或模拟按键)输入,分发给特定的模块(Framework或应用程序)进行处理,它涉及到以下一些模块: Input Reader: ...
- android 修改系统的dialog样式
android 修改系统的dialog样式 一.觉得自定义配置文件麻烦?那就来修改系统自定义XML文件来实现修改系统dialog的样式吧. 如果是在XML中样式:首先来说下样式. 在 Style.x ...
- Android核心分析之十五Android输入系统之输入路径详解
Android用户事件输入路径 1 输入路径的一般原理 按键,鼠标消息从收集到最终将发送到焦点窗口,要经历怎样的路径,是Android GWES设计方案中需要详细考虑的问题.按键,鼠标等用户消息 ...
- [Android] 输入系统(一)
Android输入系统是人与机器交互最主要的手段.我们通过按键或者触碰屏幕,会先经由linux产生中断,进行统一的处理过后,转换成Android能识别的事件信息,然后Android的输入系统去获取事件 ...
随机推荐
- Weblogic修改后台日志输出级别
- tcpdump dns包(linux高性能编程读书笔记2)
tcpdump -i eth0 -nt -s 500 port domain host -t A www.baidu.com www.baidu.com is an alias for www.a ...
- 安卓动画之ObjectAnimator
ObjectAnimator 不仅仅移动位置,还移动了对象view 先来代码片段: //Y轴变换 ObjectAnimator oa = ObjectAnimator.ofFloat(imageVie ...
- 剑指offer
今天完成了剑指offer上的66道编程题,感觉自己还是很多代码实现能力和算法积累都还不够!还需要继续联系,坚持自己独立写代码实现. 最后将今天的两道题目奉上,都有异曲同工之妙: 矩阵中的路径: #in ...
- Yii 1.1 URL两个笔记 同时支持PATH于GET路由和隐藏index.php
同时支持PATH于GET格式路由(修改框架文件 简直坑) framework/web/CUrlManager.php parseUrl方法 第一行判断修改成 if($this->getUrlFo ...
- android读取data下得数据
拥有Root权限的情况 adb shell su cd /data/data/com.package 然后就可以直接读取 没有Root的情况 adb shell run-as com.package ...
- 【原创】开发Kafka通用数据平台中间件
开发Kafka通用数据平台中间件 (含本次项目全部代码及资源) 目录: 一. Kafka概述 二. Kafka启动命令 三.我们为什么使用Kafka 四. Kafka数据平台中间件设计及代码解析 五. ...
- table表格的属性
border="1"----边框 cellpadding="10%"----单元边缘与其内容之间的空白距离 cellspacing="10%" ...
- Fast-paced Multiplayer
http://www.gabrielgambetta.com/fpm1.html —————————————————————————————————————————————————————— Fast ...
- 一、 使用存储过程实现数据分页(Sql Server 2008 R2)
1.废话不多说了,直接上代码.调用这个存储过程只需要传递 表名,排序字段,搜索字段,以及页码,页码数量,搜索值(可空) create PROCEDURE NewPage --通用的分页存储过程,百万数 ...