这是我在StackOverflow上的第一个问题,我的英语很差,所以请:D。我这样做只是为了好玩。我想更改每个用户的图标,让用户更改应用程序的图标。我想如果我想这样做,我必须阅读apk自己,解压缩它,改变che drawable / icon.png并重建它,最后签名。
我尝试了一些代码,但都失败了。导入的原因是,package sun.securate.*
不在Android Java框架中。我写了一些代码来做到这一点,但它失败了-_-
谁能帮我?我可以分享我已编写的代码。
请帮助我!
答案 0 :(得分:1)
另外一个解决方法是为Home Screen创建快捷方式图标,它启动与启动器相同的Activity。这样你的抽屉中的启动器图标将是实际的,但在主屏幕上你将有不同的图标。如果您知道包信息,也可以探索为其他应用创建快捷方式的想法。
价:
对于包裹信息,这里是doc。
PackageManager pkgMgr = getPackageManager();
为了创建捷径,这里是片段(这只是为了说明):
// Setting the intent class ActivityClassToLaunch you need to try PackageManager
Intent i = new Intent(activity, ActivityClass.class);
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
Intent result = new Intent();
result.putExtra(Intent.EXTRA_SHORTCUT_INTENT, i);
result.putExtra(Intent.EXTRA_SHORTCUT_NAME, activity.getString(R.string.app_name));
ShortcutIconResource iconResource = null;
iconResource = ShortcutIconResource.fromContext(activity, R.drawable.new_app_icon);
result.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);
result.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
activity.sendBroadcast(result);
如果您只是想让用户更改应用程序图标,为什么不从SD卡加载图标。如果用户未指定图标,则随包附带的图标将在那里。
以下是可以帮助您的代码段。
onCreate(...)
setContentView(...);
setFeatureDrawable(Window.FEATURE_LEFT_ICON,
<your_drawable>);
....
}
如果这不起作用,请尝试在setFeatureDrawable
setContentView
答案 1 :(得分:0)
除非通过软件升级,否则无法更改已签名密封的APK的启动器图标。