这是我在 StackOverflow 上的第一个问题,我的英语很差,所以请 :D。我这样做只是为了好玩。我想更改每个用户的图标,让用户更改应用程序的图标。我想如果我想这样做,我必须自己阅读 apk,解压缩,更改 che drawable/icon.png 并重建它,最后签名。
我尝试了一些代码,但失败了。引入的原因是,package sun.securate.*
不在Android Java 框架中。我写了一些代码来做这个,但是失败了-_-
谁能帮我?我可以分享我已经编写的代码。
请帮助我!
最佳答案
另一个解决方法是为主屏幕创建快捷方式图标,它启动与启动器相同的 Activity。有了这个,您在抽屉中的启动器图标将是实际的图标,但在主屏幕上您将有不同的图标。如果您知道包信息,您还可以探索为其他应用创建快捷方式的想法。
引用:
这里的包裹信息是doc .
PackageManager pkgMgr = getPackageManager();
这里是创建快捷方式的 fragment (这只是为了说明):
// 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>);
....
}
如果这不起作用,请尝试在 setContentView
之前调用 setFeatureDrawable
关于java - 在客户端手机上签署 APK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8476054/