Android 清除应用程序数据不工作

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) {

我试图从我的应用程序中清除Netflix数据,电视版(忍者)。我使用以下代码:

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”。我能做些什么来克服这个问题?有什么建议吗?