当前位置:  编程技术>移动开发

Android 创建/验证/删除桌面快捷方式(已测试可用)

    来源: 互联网  发布时间:2014-10-13

    本文导语:  测试环境为Adnroid 2.1以上。 第一步:AndroidManifest.xml 权限配置: 添加快捷方式权限: 代码如下: 验证快捷方式是否存在权限: 代码如下:删除快捷方式权限:  代码如下: 代码: 代码如下: public class ShortCutSample { /** * 添加快...

测试环境为Adnroid 2.1以上。
第一步:AndroidManifest.xml 权限配置:
添加快捷方式权限:
代码如下:



验证快捷方式是否存在权限:
代码如下:



删除快捷方式权限: 
代码如下:



代码:
代码如下:

public class ShortCutSample {
/**
* 添加快捷方式
* */
public void creatShortCut(Activity activity,String shortcutName,int resourceId)
{
Intent intent = new Intent();
intent.setClass(activity, activity.getClass());
/*以下两句是为了在卸载应用的时候同时删除桌面快捷方式*/
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
//不允许重复创建
shortcutintent.putExtra("duplicate", false);
//需要现实的名称
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortcutName);
//快捷图片
Parcelable icon = Intent.ShortcutIconResource.fromContext(activity.getApplicationContext(), resourceId);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
//点击快捷图片,运行的程序主入口
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
//发送广播。OK
activity.sendBroadcast(shortcutintent);
}
/**
* 删除快捷方式
* */
public void deleteShortCut(Activity activity,String shortcutName)
{
Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT");
//快捷方式的名称
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,shortcutName);
//在网上看到到的基本都是一下几句,测试的时候发现并不能删除快捷方式。
//String appClass = activity.getPackageName()+"."+ activity.getLocalClassName();
//ComponentName comp = new ComponentName( activity.getPackageName(), appClass);
//shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));
/**改成以下方式能够成功删除,估计是删除和创建需要对应才能找到快捷方式并成功删除**/
Intent intent = new Intent();
intent.setClass(activity, activity.getClass());
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,intent);
activity.sendBroadcast(shortcut);
}
/**
* 判断是否存在快捷方式
* */
public boolean hasShortcut(Activity activity,String shortcutName)
{
String url = "";
int systemversion = Integer.parseInt(android.os.Build.VERSION.SDK);
/*大于8的时候在com.android.launcher2.settings 里查询(未测试)*/
if(systemversion < 8){
url = "content://com.android.launcher.settings/favorites?notify=true";
}else{
url = "content://com.android.launcher2.settings/favorites?notify=true";
}
ContentResolver resolver = activity.getContentResolver();
Cursor cursor = resolver.query(Uri.parse(url), null, "title=?",new String[] {shortcutName}, null);
if (cursor != null && cursor.moveToFirst()) {
cursor.close();
return true;
}
return false;
}
}

调用测试代码:
代码如下:

 public class mainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ShortCutSample sample =new ShortCutSample();
String shortcutName=getString(R.string.app_name);
if(sample.hasShortcut(this, shortcutName))
sample.deleteShortCut(this,shortcutName);
else
sample.creatShortCut(this,shortcutName,R.drawable.icon);
}
}

在网上找了很久都是一样的代码,删除那块搞了一个下午才弄好,其实很简单的东东。
第一次发文章,Adnroid新人。多多交流和指导呀。呵呵。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Android设置桌面背景图片的实现方法
  • 解析Android应用启动后自动创建桌面快捷方式的实现方法
  • android 为应用程序创建桌面快捷方式技巧分享
  • android如何添加桌面图标和卸载程序后自动删除图标
  • Android自定义桌面功能代码实现
  • android 添加随意拖动的桌面悬浮窗口
  • Android 桌面Widget开发要点解析(时间日期Widget)
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • Android开发需要的几点注意事项总结
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • Android访问与手机通讯相关类的介绍
  • Android 图标库 Android GraphView
  • Android及andriod无线网络Wifi开发的几点注意事项
  • 轻量级Android开发工具 Android Tools
  • Android 2.3 下StrictMode介绍
  • Android 开发环境 Android Studio
  • IDEA的Android开发插件 idea-android
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote
  • Android小游戏 Android Shapes
  • Android电池监控 Android Battery Dog
  • android开发:“android:WindowTitle”没有对应项no resource
  • Android 上类似IOS 的开关控件。 Android ToggleButton
  • Android 将 android view 的位置设为右下角的解决方法
  • Android 2D游戏引擎 Android Angle


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3