美文网首页
android桌面快捷方式创建无标题文章

android桌面快捷方式创建无标题文章

作者: 647e6413e2f4 | 来源:发表于2016-03-18 23:39 被阅读0次

    因为公司游戏产品需要,使用建造者模式设计开发了这个android桌面快捷方式创建库,本项目简单易用

    项目地址:

    https://github.com/fanOfDemo/ShortcutLib

    git clone https://github.com/fanOfDemo/ShortcutLib.git

    或者直接使用gradle,在项目build.gradle配置

    allprojects {

    repositories {

    jcenter()

    maven {

    url 'https://dl.bintray.com/fanofdemo/maven/'

    }

    }

    }

    在module中配置:

    compile 'cn.yw.sclib:shortcut_lib:1.0.0'

    快速使用shortcut,避免各种ROM适配导致的各种问题,兼顾各种场合下创建快捷方式。

    1 使用本地资源icon创建桌面快捷方式

    2 使用网络图片作为icon创建桌面快捷方式(二级物理缓存,第一次下载到本地sd卡,第二次直接取sd卡对应目录的图片文件,未考虑大图可能oom的情况,快捷方式的图如果很大的话只能找你们产品要解释了,如果有问题建议提issues)

    3 使用drawble创建快捷方式

    4 在activity中创建(已知跳转activity,当前app中)

    5 在android任何场景跳转到入口activity(目标activity未知,比如模块service中)

    //在activity中使用资源logo创建:

    new Sc.Builder(this, this.getClass()).

    setName("资源创建快捷方式").

    setAllowRepeat(false).

    setIcon(R.mipmap.ic_launcher).

    setCallBack(new ScCreateResultCallback() {

    @Override

    public void createSuccessed(String createdOrUpdate, Object tag) {

    Toast.makeText(MainActivity.this, createdOrUpdate, Toast.LENGTH_SHORT).show();

    }

    @Override

    public void createError(String errorMsg, Object tag) {

    Toast.makeText(MainActivity.this, errorMsg, Toast.LENGTH_SHORT).show();

    }

    }).build().createSc();

    //在activity中使用网络图片作为logo创建:

    new Sc.Builder(this, this.getClass()).

    setAllowRepeat(false).

    setName("网络图片快捷方式").

    setIcon("http://cdn.duitang.com/uploads/item/201507/22/20150722013722_HceJW.thumb.224_0.jpeg").

    setCallBack(new ScCreateResultCallback() {

    @Override

    public void createSuccessed(String createdOrUpdate, Object tag) {

    Toast.makeText(MainActivity.this, createdOrUpdate, Toast.LENGTH_SHORT).show();

    }

    @Override

    public void createError(String errorMsg, Object tag) {

    Toast.makeText(MainActivity.this, errorMsg, Toast.LENGTH_SHORT).show();

    }

    }).build().createSc();

    //在service中使用当前app的drawable创建(只能依据上下文获取当前app的入口activity):

    PackageManager pm = this.getPackageManager();

    ApplicationInfo appInfo = MainActivity.this.getApplicationInfo();

    Drawable drawable = appInfo.loadIcon(pm);//当前app的logo

    String name = appInfo.loadLabel(pm).toString();//当前app的名称

    Intent intent = pm.getLaunchIntentForPackage(appInfo.packageName);//当前app的入口程序

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    new Sc.Builder(this, intent).

    setName(name).

    setAllowRepeat(true).

    setIcon(drawable).

    setCallBack(new ScCreateResultCallback() {

    @Override

    public void createSuccessed(String createdOrUpdate, Object tag) {

    Toast.makeText(MainActivity.this, createdOrUpdate, Toast.LENGTH_SHORT).show();

    }

    @Override

    public void createError(String errorMsg, Object tag) {

    Toast.makeText(MainActivity.this, errorMsg, Toast.LENGTH_SHORT).show();

    }

    }).build().createSc();

    如果有问题建议提issues,一起完善这个库

    如果对你有帮助,可以给我点个star,谢谢

    相关文章

      网友评论

          本文标题:android桌面快捷方式创建无标题文章

          本文链接:https://www.haomeiwen.com/subject/jsrhlttx.html