Мне нужно установить файл apk без запроса пользователя, как это делает Google PlayStore. Я знаю, что этот вопрос задавался много раз, но все же я не нашел разрешимого ответа. Я просто устанавливаю приложение со своей SD-карты и пробовал следующим образом:
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, то почему бы не с нами?
Пожалуйста, мне нужна помощь, если это возможно!
Спасибо,