Android中程序向桌面和Launcher添加快捷方式【安卓进化三十二】

        最近感觉这个添加快捷方式挺有趣的,就查资料自己写了个demo---简单的例子,这个例子就是有两个按钮,点击“将此程序添加到快捷方式”,则手机桌面增加一个快捷方式,同时launcher中也多了一个快捷方式,点击退出,则提示:toast弹提示信息“退出程序”。知识梳理:Android平台上添加快捷方式有两种:一种桌面的快捷方式,一种是launcher的快捷方式。原理:是通过intent封装一些信息,以Broadcast的形式通知launcher创建快捷方式的!一定不要忘记在manifest.xml中注册一下权限

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT">

在manifest.xml中加入一个动作过滤的intentFilter,快捷方式的列表中会多个该程序的快捷方式。

有问题或向说点什么的可以留言,欢迎大家批评和指正,转载请标明出处:

下面看一下程序的截图:  

                             程序的开始界面:                                     点击“将此程序添加快捷方式”按钮:

                                                     

         点击退出按钮,桌面多了快捷方式,弹Toast:            点出选择快捷方式后多了程序的快捷方式:

                                                       

在IntentWidget工程中:

一、在com.cn.daming包中IntentWidgetMainActivity.java中的代码:

 
package com.cn.daming;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class IntentWidgetMainActivity extends Activity implements OnClickListener{
private Button mStartWidgetButton;
private Button mExitButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mStartWidgetButton = (Button) findViewById(R.id.my_button_1);
mExitButton = (Button) findViewById(R.id.my_button_2);
mStartWidgetButton.setOnClickListener(this);
mExitButton.setOnClickListener(this);
}
public void onClick(View v)
{
if(v == mStartWidgetButton){
//inint the widgetIntent is declear
Intent addWidgetIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
//whether repeat create is or not 
addWdgetIntent.putExtra("duplicate",true); 
//set the Widget of the title
String mTitle = getResources().getString(R.string.my_title);
//set the Widget of the icon
Parcelable icon = Intent.ShortcutIconResource.fromContext(this, R.drawable.widget_image);
Intent mIntent = new Intent(this,IntentWidgetMainActivity.class);
addWidgetIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, mTitle);//set the title
addWidgetIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);//set the icon
addWidgetIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, mIntent);//set the intent
sendBroadcast(addWidgetIntent);
}
else if(v == mExitButton){
finish();
Toast.makeText(IntentWidgetMainActivity.this, R.string.exit, Toast.LENGTH_SHORT).show();
}
}
}

二、在layout目录下的main.xml中的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00ffffff"
>
<TextView  
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="15dip"
android:layout_marginBottom="15dip"
android:gravity="center"
android:text="@string/hello"
android:textSize="8pt"
/>
<Button
android:id="@+id/my_button_1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dip"
android:textSize="10pt"
android:text="@string/my_button_1"
/>
<Button
android:id="@+id/my_button_2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dip"
android:textSize="10pt"
android:text="@string/my_button_2"
/>
<TextView  
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginBottom="15dip"
android:gravity="center"
android:text="@string/blogs"
android:textSize="8pt"
/>
</LinearLayout>

三、在values下的string.xml中的代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">这是大明添加到Launcher的快捷方式</string>
<string name="app_name">大明快捷方式!</string>
<string name="my_button_1">将此程序添加快捷方式</string>
<string name="my_button_2">退出程序</string>
<string name="my_title">大明程序</string>
<string name="exit">程序正在退出。。。。。。</string>
<string name="blogs">博客地址:\n http://blog.csdn.net/wdaming1986/article/details/6877154</string>
</resources>

 

四、manifest.xml 中的代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cn.daming"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".IntentWidgetMainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- add the launch of my programmer`s quick launcher-->
<intent-filter>
<action android:name="android.intent.action.CREATE_SHORTCUT"/>
</intent-filter>
</activity>
</application>
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
</manifest>


 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/70091.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 在Launcher桌面添加应用快捷图标(适用于Android 7.0(API24) 及以下)

Launcher为了应用程序能够定制自己的快捷图标&#xff0c;就注册了一个 BroadcastReceiver 专门接收其他应用程序发来的快捷图标定制信息。所以只需要根据该BroadcastReceiver构造出相对应的Intent并装入我们的定制信息&#xff0c;最后调用 sendBroadcast 方法就可以创建一个快…

Android 桌面工具,安卓怎样添加桌面工具

桌面工具(Widget)是Android系统的一大特色&#xff0c;通过桌面工具可以快速得到所需的信息&#xff0c;不必打开程序即可了解最新的内容。Android系统自带了一些常用的桌面工具&#xff0c;其他一些经过定制的系统也带有具有特色的桌面工具&#xff0c;同时&#xff0c;有很多…

【答辩问题】计算机专业本科毕业设计答辩技巧

下面是总结的一些答辩期间的问题&#xff08;结合论文中出现过的整理&#xff09; 1、MVC设计模式是指什么&#xff0c;其优缺点&#xff0c;怎样用到在你的程序里 2、SSM/SSH框架是指什么&#xff0c;其优缺点&#xff0c;怎样用到在你的程序里 3、前端用到了什么技术&…

基于SSM的毕业论文答辩系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

计算机专业毕业答辩问代码吗,计算机专业毕业论文答辩技巧

在做计算机毕业设计的整个过程中&#xff0c;一般有三个答辩&#xff0c;即开始答辩、中期答辩和最终答辩。有些学校简化为两个&#xff0c;即开题答辩和期末答辩。还有的学校将直接保留了最终答辩&#xff0c;省略了开始答辩和中期答辩。 当然不管你要参加几次答辩&#xff0c…

计算机专业毕业设计论文答辩PPT模板,10套计算机毕业设计答辩PPT模板

计算机专业毕业设计论文答辩PPT模板,10套计算机毕业设计答辩PPT模板 完整PPT模板包下载地址&#xff1a;计算机专业毕业设计论文答辩PPT模板 PPT模板预览 完整PPT模板包下载地址&#xff1a;10套计算机毕业设计答辩PPT模板

【答辩问题】计算机专业本科毕业设计答辩自述

各位老师,你们好!我叫XXX,来自计算机XX,我的论文题目是《在线考试系统》,论文是在XXX老师的指点下完成的,在这里我向X老师表示深深的谢意,向参加我的论文答辩各位老师表示衷心的感谢,并对我三年来的各位授课老师表示由衷的敬意。下面我将本论文设计的目的和主要内容向各位老师作…

outlook服务器邮件满了怎么办,Outlook邮箱不能接收邮件提示邮件箱已满的解决方法...

Outlook是一款很多用户都会用来收发邮件的邮箱工具&#xff0c;但是有时候邮件多了&#xff0c;可能会遇到不能接收邮件并提示邮箱已满的情况&#xff0c;该如何解决呢&#xff0c;为此这就给大家带来Outlook邮箱不能接收邮件提示邮件箱已满的解决方法吧。 存储的电子邮件数量有…

群晖端口转发 路由器配置

控制面板 - 外部访问 - 路由器配置 点击新增&#xff0c;可以增加内置的&#xff0c;或者自定义的转发机制 本机端口表示的是内部开启的端口号&#xff0c;比如ssh的端口22 外部端口表示外网可以访问的端口号&#xff0c;比如设置为8787 那么此时&#xff0c;如果你在外网需要…

群晖|你可能并不知道的群晖反向代理

最近在内网弄了台后台服务器来开发小程序&#xff0c;小程序呢是一定要走https的&#xff0c;所以就申请了SSL证书&#xff0c;本想通过nginx来进行https反向代理&#xff0c;但忘记nginx配置怎么写了。以前玩群晖的时候貌似见过哪儿有反向代理&#xff0c;一番研究&#xff0c…

分享免端口访问群晖的方法,可以顶级域名

文章目录 废话篇前言二、前提具备的条件三、群晖设置1、设置DDNS动态解析2、利用DDNS的主机域名来访问群晖3、设置套件为不同的别名 四、域名跳转1、借用第三方跳转工具2、具体操作 五、套件的跳转 废话篇 本篇文章为原创文章&#xff0c;可以保证在不出现大变化的前提下&…

群晖NAS搭建portainer

参考&#xff1a; 群晖、威联通、Linux最强docker管理工具portainer安装及汉化教程2022最新版本 Portainer官方文档 How to run Docker commands without sudo on a Synology NAS 因为群晖的NAS是基于linux但是限制很多的系统&#xff0c;有一些东西通过命令行操作可能会遇到权…

群晖NAS用户和用户组权限讲解

文章目录 废话篇前言用户和用户组是什么实例操作讲解梳理流程实际操作&#xff1a;添加用户组实例操作&#xff1a;新增用户 登录检查是否设置成功合理的用户组设置后文总结协助改进 废话篇 本篇文章为原创文章。转载请注明出处&#xff0c;感谢。 本人也有个人博客&#xff…

群晖DS918+ 添加多网口教程

很多软路由都是四网口、六网口为常见。 而群晖DS918 默认就只有 2个网口 这样一来对于多网口的软路由其它网口就无法充分利用上了 尤其是对于那些要做 ALL IN ONE 的玩家 在群晖里面安装虚拟机&#xff0c;装个 爱快 OpenWrt 利用多余的网口&#xff0c;实现路由功能 解决这个…

群晖NAS从入门到精通的所有帖子汇总,只要这一篇就够了

本章概述&#xff1a; 本站陆陆续续的转载、原创帖子也有十几二十篇了&#xff0c;从不同的角度对群晖NAS的各种骚操作都有深入的讲解&#xff0c;虽然很多文章都不是讲的很深入&#xff0c;但是针对小白入门已经是足够了&#xff0c;希望对小白来说是一个入门&#xff0c;群晖…

[NAS] Synology(群晖) / QNAP(威联通) 设置 MariaDB 远程访问 (附带多设备DB速度测试)

简介 MariaDB数据库管理系统是MySQL的一个分支&#xff0c;主要由开源社区在维护&#xff0c;采用GPL授权许可 MariaDB的目的是完全兼容MySQL&#xff0c;包括API和命令行&#xff0c;使之能轻松成为MySQL的代替品。在存储引擎方面&#xff0c;使用XtraDB来代替MySQL的InnoDB。…

esxi设置群晖核显直通

1. 进入esxi后台依次点击 管理-硬件-PCI设备-选择显卡-切换直通-重新引导 重启之后就直通处于活动状态即可 2.在虚拟机关机状态设置虚拟机 添加pci设备 添加后&#xff0c;我们检查一下配置&#xff0c;CUP三个框框不要勾&#xff0c;内存要全部锁定 &#xff0c;不然启动不了…

在群晖上使用天翼云盘

国内的云盘接口一般都不公开&#xff0c;因此可玩性都不高&#xff0c;像 Rclone 中基本上都是国外的云盘&#xff0c;除了腾讯的 COS 和阿里的 OSS&#xff0c;因为这两者都支持 S3 对象存储。 老苏年初买了个天翼云盘的会员&#xff0c;一直在寻找天翼云盘在群晖上使用的办法…

TP-link路由器与群晖NAS的端口转发设置

首先列出我使用的设备的型号。 路由器型号: TP-LINK Archer C9 NAS型号&#xff1a;Synology DS416 需求定义&#xff1a;能够从外网访问路由器下内网中的NAS的各种服务&#xff08;如Web管理界面&#xff0c;Photo Station, Cloud Station, FTP等&#xff09; 实现思路与步骤&…

穿透内网远程访问群晖NAS

现代科技日新月异&#xff0c;我们身边的电子设备也在不断更新&#xff0c;日积月累之下&#xff0c;被淘汰的电子设备越来越多&#xff0c;难道就让这些性能不算差的电子设备从此闲置么&#xff0c;这明显不符合我们物尽其用的原则&#xff0c;不少玩家都将闲置的电脑改造成了…