Android 清除应用程序数据不工作
我试图从我的应用程序中清除Netflix数据,电视版(忍者)。我使用以下代码:Android 清除应用程序数据不工作,android,android-tv,data-cleaning,Android,Android Tv,Data Cleaning,我试图从我的应用程序中清除Netflix数据,电视版(忍者)。我使用以下代码: private void clearPreferences() { try { // clearing app data Runtime runtime = Runtime.getRuntime(); runtime.exec("pm clear com.netflix.ninja"); } catch (Exception e) {
private void clearPreferences() {
try {
// clearing app data
Runtime runtime = Runtime.getRuntime();
runtime.exec("pm clear com.netflix.ninja");
} catch (Exception e) {
e.printStackTrace();
}
}
它编译了,但什么也没发生。
当我尝试通过console执行相同操作时,它可以很好地用于:
adb shell pm clear com.netflix.ninja
有什么建议吗?
adb shell
的运行权限高于Android应用程序。许多(如果不是大多数的话)adb shell命令在Android应用程序中根本无法运行。例外情况是,如果设备是根设备,并且您通过su
运行该命令。我开始在命令上使用“su”。但我必须先在我的设备上安装根目录
如果有人需要,请遵循以下代码:
@OnClick(R.id.clean)
protected void cleanAppData() {
try {
Process p = Runtime.getRuntime().exec("su");
DataOutputStream dos = new DataOutputStream(p.getOutputStream());
dos.writeBytes("pm clear com.netflix.mediaclient\n");
dos.writeBytes("exit\n");
dos.flush();
dos.close();
p.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@RodrigoSalomao:我不为根设备开发应用程序,因此我手头没有具体的细节。从我的头脑来看,如果应用程序是一个设备管理员(可以在没有根的情况下请求),我认为有一个API可以实现这一点。对于三星设备,有一个KNOX API也可以做到这一点。它是一个运行安卓6.0的Wetek hub设备。是的,我有根访问权限,但即使它在Runtime.getRuntime().exec(“su”)上给我一个异常“Permission Danied”。我能做些什么来克服这个问题?有什么建议吗?