Google PlayStore のようにユーザープロンプトなしで apk ファイルをインストールする必要があります。この質問が何度も寄せられていることは知っていますが、それでも解決可能な答えは見つかりませんでした。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アプリで可能であれば、なぜ私たちと一緒にしないのですか?
可能であれば助けが必要です!
ありがとうございました、