直接从数据库里修改桌面图标

 

1、定义bean对象。
public class Shortcut {
 public final long id;
 public final String title;
 public final String intent;
 public final String iconResource;
 
 public Shortcut(long id, String title, String intent, String iconResource) {
  this.id = id;
  this.title = title;
  this.intent = intent;
  this.iconResource = iconResource;
 }
 
 public long getId() {
  return id;
 }
 public String getTitle() {
  return title;
 }
 public String getIntent() {
  return intent;
 }
 public String getIconResource() {
  return iconResource;
 }
 
 public String toString() {
  return "id:" + id + ",title:" + title + ",intent:" + intent + ",icon:" + iconResource;
 }
}
 
2、定义dao类。
import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
public class ShortcutDao {
 private ContentResolver contentResolver;
 private Uri uri = Uri.parse("content://com.android.launcher.settings/favorites?notify=true");
 private String[] columns = new String[]{"_id", "title", "intent", "iconResource"};
 
 public ShortcutDao(ContentResolver contentResolver){
  this.contentResolver = contentResolver;
 }
 
  public Shortcut getShortcut(String appName, String intent){
     String whereQuery = "title=? and intent like ?";
     String[] whereParams = new String[]{appName, "%"+intent+"%"};
     Cursor c = contentResolver.query(uri, columns, whereQuery, whereParams, null);
    
     try {
      c.moveToFirst();
            if (c.isAfterLast()){
                return null;
            }else{
             return new Shortcut(c.getLong(0), c.getString(1), c.getString(2), c.getString(3));
            }
        } finally {
         c.close();
        }
    }
    public void updateShortcut(long id, String icon){
     ContentValues values = new ContentValues();
        values.put("iconResource", icon);
        contentResolver.update(uri, values, "_id=?", new String[]{String.valueOf(id)});
    }

    public void updateShortcut(long id, String icon, String iconPackage){
     ContentValues values = new ContentValues();
        values.put("iconResource", icon);
        values.put("iconPackage", iconPackage);
        values.put("itemType", 1);
        contentResolver.update(uri, values, "_id=?", new String[]{String.valueOf(id)});
    }
}
 
3、添加下面这些权限。

 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
 <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
 <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
 <uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值