最近在做一个软件管理的东西, 最初是用 Intent 调用系统安装程序实现的.
因为系统的会有相关的提示, 不太直接.
所以想自己写一个 安装apk 的代码出来
上网找了不少资料, 用过两种方法实现
1) 用 PackageManager.installPackage()方法
但这个方法不是所有sdk都有, 1.6以上的没找到有. 只在1.5里能使用
2) 用 Runtime.getRuntime().exec()方法
通过 执行 pm -install 来安装这两种方法都需要获得 android.permission.INSTALL_PACKAGES 这个权限
加此权限到 AndroidManifest.xml后 在android源代码 创建项目 并 在Android.mk 文件加上 certification = platform 后编译成功.可是 在 模拟器 上测试通过 能获取到 INSTALL_PACKAGES权限
但在我自用的测试机调试时 提示 not granting android.permission.INSTALL_PACKAGES.
这到底是什么原因. 请各位大侠帮忙看看..
因为系统的会有相关的提示, 不太直接.
所以想自己写一个 安装apk 的代码出来
上网找了不少资料, 用过两种方法实现
1) 用 PackageManager.installPackage()方法
但这个方法不是所有sdk都有, 1.6以上的没找到有. 只在1.5里能使用
2) 用 Runtime.getRuntime().exec()方法
通过 执行 pm -install 来安装这两种方法都需要获得 android.permission.INSTALL_PACKAGES 这个权限
加此权限到 AndroidManifest.xml后 在android源代码 创建项目 并 在Android.mk 文件加上 certification = platform 后编译成功.可是 在 模拟器 上测试通过 能获取到 INSTALL_PACKAGES权限
但在我自用的测试机调试时 提示 not granting android.permission.INSTALL_PACKAGES.
这到底是什么原因. 请各位大侠帮忙看看..
解决方案 »
- Android2.3.6上客制化标题栏。
- android JNI库中如何处理IO口操作?
- android源代码在windows下的下载
- 请教:HTC G3手机退出程序的方法
- 在eclipse里面安装apk时,出现。。
- 做Hello案例的时候,要Create an AVD,我双击android.bat出来的dos窗口加图形化设置AVD的界面
- tablerow中组件实现竖直排列,如何做?
- 如果在static中使用alertdialog
- mediaplayer添加了surfaceview结果声音能正常播放,画面不会自动播放,点击seekbar可以看到这个节点的画面但是不能自动播放
- javamail实现发送邮件
- 求android高手
- 求助 为啥eclipse写了setButton之后就没有代码提示了
adb shell之后看到的是"$"
模拟器上看到的是“#"
我在模拟器看到的是 # 没错..
请问 $ 跟 # 有什么区别.
是不是程序要有root权限才可以?
但我使用 Intent 系统安装APK程序时 也能正常使用. 无论是 模拟器还是真机.
加上system权限 可能会行. 但我还需要访问sdcard资料.
加了system权限后是不能访问scard资料的.
也是出同样的错误.有没有人知道 应该怎么编译才正确呢.
真机上面会检查一个标记的信息,密码是什么一般都不告诉别人的,所以一般来说系统的程序都需要编译整个source code,然后将自己编译的system.img重烧到手机中。建议不要下mm了,直接make一遍也是比较快的了,反正只是编译一个应用。2. Install问题
看了PackageInstaller,它也最终调用的是PackageManager进行安装程序的。
权限的话,也只是在manifest里面加了
<uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
差不多可以肯定的是代码是没什么问题的。3. 如果说楼主的程序在模拟器机上面可以跑,最好确认下真机是否是通过google cts测试的手机,并且确认下它没有太多的修改framework的代码。要不然,可能是android.permission.INSTALL_PACKAGES所对应的位置id与原始代码中的位置不一样,导致用源码环境编译出来的apk无法在真机上面使用。建议:
1. 确认是否能获得root权限。
2. 如果可以,那么到真机的/data/system/下把,packages.xml拉出来看看对应设置是什么样的。希望对你有用,中午写个小程序验证下,再来下结论。
我用G2来测试, 不知道是不是 是否通过google cts测试的手机.
我也没有修改过framework的代码, 运行代码时 只提示 调用该方法需要 INSTALL_PACKAGES权限而已我的手机是没有获得root权限的, 主要是我用过eoeMarket是可以直接安装的, 在我的机子上同样可以.
所以我认为不会是手机root权限的问题, 我也是看到人家可以实现, 我才想做这个功能出来而已.
能不能一安装完 就放在system/app里, 而不是 data/app里.
想请问下 如何把apk放到/system/app/
这个文件夹的权限是
drwxr-xr-x没有往里写的权限啊
adb shell之后看到的是"$"
模拟器上看到的是“#"
没错..原理是一样的...开通 system.uid的话 是没有权限访问sdcard内容的. 网上也有说明