似乎已经在API 21(Lollipop)中添加了PackageInstaller(https://developer.android.com/reference/android/content/pm/PackageInstaller.html),但是我还没有找到任何关于如何安装的可靠代码示例通过此API的APK.任何代码帮助将不胜感激.
我正在调查针对Android M Preview的COSU/Kiosk应用程序,并且正在尝试实施新功能"设备所有者静默安装和卸载应用程序"(https://developer.android.com/preview/api-overview.html# afw)通过PackageInstaller API.
找到这些,但没有帮助:如何使用Android L中的"PackageInstaller"类安装/更新/删除APK? Lollipop上的"PackageInstaller"类是什么,以及如何使用它?
没有找到任何Android示例应用程序.
提前致谢.
silent-installer kiosk-mode device-owner packageinstaller android-6.0-marshmallow
在我的开发机器上,我总是需要安装Java 6 和 Java 7,我必须在32位和64位版本中安装每个JDK,以进行测试.由于Java更新的频率似乎变得越来越荒谬(现在每周两次?)每次更新都要求我取消然后重新安装4个 JDK.所以这真的很烦人,因此我想编写整个过程的脚本.
我的问题是,默认情况下,每个JDK版本都安装到包含update-number的目录路径中(默认值:"C:\ Program Files\Java\jdk1.6.0_ <update-nr> \").为了避免我不得不调整大量的构建脚本,我总是手动从安装路径中删除尾随的"_ <update-nr>"并始终安装到相同的"C:\ Program Files\Java\jdk1.6.0"或"C:\ Program Files\Java\jdk1.7.0",分别为64位版本和C:\ Program Files(x86)\ Java\jdk1.6.0"或"C:\ Program Files(x86)\Java\jdk1.7.0",对于32位版本,分别为.
我发现了,如何为JRE安装程序(即Java运行时)指定安装目录:
<jre-installfile>.exe [/s] [INSTALLDIR=<drive>:\<JRE_install_path>]
[STATIC=1] [WEB_JAVA=0/1] [WEB_JAVA_SECURITY_LEVEL=VH/H/M/L]
Run Code Online (Sandbox Code Playgroud)
我还没有找到类似的描述如何指定JDK安装程序的安装目录.
有谁知道是否以及如何指定JDK安装程序的安装路径,以便可以将静默JDK安装指向特定的安装目录?
我正在开发一个Mac OS X应用程序(云打印应用程序).要运行我的应用程序,我需要一些支持驱动程 所以我使用包装制造商软件打包了那些驱动程序和我的应用 我创建了一个pkg文件.
它作为包安装程序正常工作.但我需要通过在终端中运行脚本/命令来静默安装此软件包.
PS:无提示安装是在任何用户干预下安装软件的方法(例如同意条款).它将使用终端命令使用admin privillages静默安装软件.在Windows端,可以执行此静默安装.
任何人都可以提供解决方案在包安装程序中执行此静默安装吗?
背景:
我有一个主应用程序,需要能够访问Web并下载与之关联的DLL文件(我们编写的文件,位于我们的服务器上).它确实需要能够将这些DLL文件下载到"C:\ Program Files \"中的应用程序文件夹中.在过去,我曾经习惯System.Net.WebClient
从网上下载我想要的任何文件.
问题
我在过去下载数据并保存到用户硬盘上的文件时遇到了很多麻烦.我收到许多用户的报告说这不起作用,这通常是因为程序中的用户权限问题.
在程序用户权限出现问题的情况下,每个用户都可以转到Web上的确切文件位置,下载它,然后手动将其保存到正确的位置.
我希望这个工作像我见过的所有其他程序一样下载/安装(即Firefox插件更新,Flash Player,JAVA,Adobe Reader等).所有这些都顺利完成.
问题
我是否需要使用一些代码来为我的下载程序提供Program Files文件夹的特殊权限?我甚至可以这样做吗?我应该使用更好的课程或图书馆吗?是否有不同的方法来下载我应该采取的文件,例如使用线程或其他东西来下载数据?
任何帮助在这里表示赞赏.我想尝试远离第三方应用程序/库,如果可能的话,除了微软当然,由于许可问题,但仍然以我的方式发送任何建议.
同样,其他程序似乎也有权利问题和下载能力.我想要同样的能力.
我们想在多台机器上更新JDK环境,所有运行的窗口都有不同的版本(XP或7)
为此,我现在正在创建一个脚本,它将自动运行正确的安装程序(32/64位).我尝试使用以下命令运行安装程序:
jdk-8u25-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature,PublicjreFeature"
这在没有安装JDK/JRE 8的机器上工作正常.但是,我遇到了一些问题:
我看过这些来源:
但他们似乎缺乏并且非常混淆什么会给我想要的结果.
我正在寻找一种方法来编程我的应用程序以静默安装apk文件.我知道启动代码的可能性看起来像这样:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
但是这个代码在安装之前启动了一个带有apk需要权限的对话框,需要用户授权才能开始安装.
有没有办法跳过这个对话框?有没有其他方法可以在我的代码中运行时安装不需要用户交互的应用程序?
我想在Android中实现一个无声的安装程序 - 来自apk文件和unistaller-package.主题已在SO和其他地方进行了大量讨论,但我不能因为某些原因而无法申请.范围显然很难实现,因为如果成功,它将成为Android中严重的安全漏洞.但是,我需要为特殊项目实施它,而不是针对消费者市场.有两种方法:
对于第一种情况,我深入研究了Froyo源代码,但是使用@hide标记方法进入死胡同.第二天我首先尝试了终端的命令
adb shell pm install /mnt/sdcard/HelloAndroid.apk
Run Code Online (Sandbox Code Playgroud)
和
adb shell pm uninstall com.example.helloandroid
Run Code Online (Sandbox Code Playgroud)
两者都工作正常.然后,我使用以下代码,在rooted仿真器(2.2 - Froyo)上测试开发:
@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id.btnInstall:
try {
install = Runtime.getRuntime().exec("su\n");
DataOutputStream os = new DataOutputStream(install.getOutputStream());
os.writeBytes("pm install /mnt/sdcard/HelloAndroid.apk\n");
os.writeBytes("exit\n");
os.flush();
install.waitFor();
if (install.exitValue() == 0) {
Toast.makeText(MainActivity.this, "Success!", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(MainActivity.this, "Failure. Exit code: "+String.valueOf(install.exitValue()), Toast.LENGTH_LONG).show();
}
}
catch (InterruptedException e) {
logError(e);
}
catch (IOException e) …
Run Code Online (Sandbox Code Playgroud) 我有一个installshiled项目,生成setup.exe文件.我想通过生成正确的setup.iss文件来启用静默安装.我运行了以下命令:
Setup.exe /r
Run Code Online (Sandbox Code Playgroud)
它推出了安装程序,但它从未创建过该setup.iss
文件.我查看C:\Windows
了文档建议,以及其他一些位置(本地目录,程序文件等)
为什么不创建它以及如何修复?
谢谢,
我想第一次写一个.bat.
我正在尝试使用脚本安装.msi,目前我们通过双击手动安装.
路径来自:d:/installed sw/$folder/.msi
路径:D:/program files/app/
$folder
意味着,它每次都不同,因为我们正在安装新的msi来安装,这些msi是在当前日期创建的文件夹中提供的.
这是我正在尝试的脚本:
@echo off
Title HOST: Installing Updates on %computername%
echo %computername%
set server=\\SERVERNAME or PATH\msifolder
:select
cls
echo Select one of the Following MSI Install Folders for installation task.
echo.
dir %server% /A:D /B
SET /P MSI=Please enter the MSI Folder to install:
SET source=%server%\%MSI%
echo Selected Installation %MSI%
echo.
echo.
:verify
ECHO Is This Correct?
echo.
echo.
ECHO 0: ABORT INSTALL
ECHO 1: YES
ECHO …
Run Code Online (Sandbox Code Playgroud) silent-installer ×10
android ×2
java ×2
apk ×1
batch-file ×1
c# ×1
device-owner ×1
installer ×1
java-6 ×1
java-7 ×1
kiosk-mode ×1
macos ×1
packagemaker ×1
silent ×1
windows ×1
wix ×1