java - 在客户端手机上签署 APK

标签 java android apk

这是我在 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/

相关文章:

android - ActivityManager : Warning: Activity not started, 它当前的任务已经被带到了前面

java - 为什么我无法访问在构造函数(Java)中创建的类的实例

java - 涉及标识符 R 的错误(将一个项目嵌入另一个项目时)

android - 使用 MpAndroidChart-CombinedChart,如何将图表分成上下两部分?

Android 通过蓝牙发送命令失败

Android Studio 发布版本不 zipaligning

android - 如何使用 Xamarin.Android 从最终 APK 文件中删除未使用的语言?

android - 将较旧的Alpha APK升级为Beta

java - 使用 proguard 仅删除日志语句

java - “Cannot find symbol”或 “Cannot resolve symbol”错误是什么意思?