Friday, 30 August 2013

variable accessed within inner class

variable accessed within inner class

I have the following code to use to execute a root command:
public static String sudo(final String cmd, Context ctx) {
String output = null; //init string output
if (RootTools.isRootAvailable()) {
if (RootTools.isAccessGiven()) {
try {
CommandCapture command = new CommandCapture(0, cmd) {
@Override
public void output(int id, String line) {
Log.d("com.vwade79.aokpdelta.Functions.sudo",
"cmd:"+cmd+"\noutput:"+line);
if (line.equals("")) {
return;
}
else {
output = line; //ERROR
}
}
};
RootTools.getShell(true).add(command).waitForFinish();
} catch (Exception e) {
Toast.makeText(ctx, "There was an error executing root
command : "+cmd, Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
else {
Toast.makeText(ctx, "Root permission isn't given!",
Toast.LENGTH_LONG).show();
Intent intent = new Intent(ctx, MainActivity.class);
ctx.startActivity(intent);
}
}
else {
Toast.makeText(ctx, "You're not rooted! Come back when you are!",
Toast.LENGTH_LONG).show();
Intent intent = new Intent(ctx, MainActivity.class);
ctx.startActivity(intent);
}
return output;
}
I am getting an error:
variable "output" is accessed from within inner class. Needs to be
declared final.
I don't know how to assign the output from the "inner class".

No comments:

Post a Comment