我需要在没有任何用户提示的情况下安装 apk 文件,就像 Google PlayStore 一样。我知道这个问题已经被问过很多次了,但我仍然没有找到任何可解决的答案。我只是从我的 sdcard 安装应用程序,我尝试了以下方式,
public void getInstall(Context context) {
File file = new File(Environment.getExternalStorageDirectory()
+ "/Demo.apk");
Uri mPackageURI = Uri.fromFile(file);
ApplicationManager appMgr = null;
try {
appMgr = new ApplicationManager(context);
} catch (SecurityException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (NoSuchMethodException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
int installFlags = 1;
PackageManager pm = context.getPackageManager();
Method method = null;
try {
method = pm.getClass().getMethod(
"installPackage",
new Class[] { android.net.Uri.class,
android.content.pm.IPackageInstallObserver.class,
Integer.TYPE, String.class });
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String installerPackageName = "com.myapp.demo";
PackageInstallObserver observer = appMgr.new PackageInstallObserver();
try {
method.invoke(pm, new Object[] { mPackageURI, observer,
installFlags, installerPackageName });
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Neither user 10057 nor current process has android.permission.INSTALL_PACKAGES
但是即使我在清单文件中添加了此权限,我也会收到错误消息。
我的设备没有植根,我希望它不生根,在许多答案中,我发现根据安全原因,他们不允许这样做是不可能的,但如果可以使用 PlayStore 和AndroidLost应用程序,那么为什么不使用我们呢?
如果可能的话,我需要帮助!
谢谢,