我注意到每当我对base64进行编码时,最后会附加一个"=".我可以删除这个字符然后通过添加它来可靠地解码它,或者这是危险的吗?换句话说,是否总是附加"=" ,或仅在某些情况下?
我希望我的编码字符串尽可能短,这就是为什么我想知道我是否总能删除"="字符并在解码之前将其添加回来.
我有一个App-Manager应用程序,允许将APK文件发送到其他应用程序.
直到Android 4.4(包括),我必须为此任务执行的操作是将路径发送到原始APK文件(所有这些都在"/ data/app/..."下,即使没有root也可以访问).
这是发送文件的代码(此处提供的文档):
intent=new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.setType("*/*");
final ArrayList<Uri> uris=new ArrayList<>();
for(...)
uris.add(Uri.fromFile(new File(...)));
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,uris);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_NO_HISTORY|Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET|Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
Run Code Online (Sandbox Code Playgroud)
我做了什么工作,因为所有应用程序的APK文件都有一个唯一的名称(这是他们的包名称).
自从Lollipop(5.0)以来,所有应用程序的APK文件都被命名为"base.APK",这使得其他应用程序无法理解附加它们.
这意味着我有一些选项来发送APK文件.这就是我在想的:
将它们全部复制到一个文件夹,将它们全部重命名为唯一的名称,然后发送它们.
将它们全部压缩到一个文件然后发送它.压缩级别可能很小,因为APK文件已经被压缩了.
问题是我必须尽快发送文件,如果我真的必须拥有这些临时文件(除非有其他解决方案),也要尽快处理它们.
事实是,当第三方应用程序处理完临时文件时,我没有得到通知,我也认为选择多个文件需要花费一些时间来准备,无论我选择什么.
另一个问题是某些应用程序(如Gmail)实际上禁止发送APK文件.
有没有我想到的解决方案的替代方案?有没有办法解决这个问题与我以前的所有优势(快速和没有垃圾文件留下)?
也许某种方式来监控文件?或创建一个流而不是一个真正的文件?
将临时文件放在缓存文件夹中会有什么帮助吗?