I think Uninstall app immediately is not solution, you must find out where is root directory, and beware about magisk manager app, can bypass root detection
you can try root detection using Rootbeer, roottools, or create root class.
using Rootbeer for magisk manager
//root example you can call this class.
public static boolean findBinary(String binaryName) {
boolean found = false;
if (!found) {
String[] places = { "/sbin/", "/system/bin/", "/system/xbin/",
"/data/local/xbin/", "/data/local/bin/",
"/system/sd/xbin/", "/system/bin/failsafe/", "/data/local/",
"/system/app/Superuser.apk", "/sbin/su", "/sbin/su/", "/system/bin/su","/system/bin/su/",
"/system/xbin/su", "/system/xbin/su/", "/data/local/xbin/su", "/data/local/bin/su", "/system/sd/xbin/su",
"/system/bin/failsafe/su", "/data/local/su", "/su/bin/su", "/su/",
"/data/local/xbin/",
"/system/bin/.ext/",
"/system/bin/failsafe/",
"/system/sd/xbin/",
"/su/xbin/",
"/su/bin/",
"/magisk/.core/bin/",
"/system/usr/we-need-root/",
"/system/xbin/",
"/system/su","/system/bin/.ext/.su","/system/usr/we-need-root/su-backup",
"/system/xbin/mu",
"/system/su/","/system/bin/.ext/.su/","/system/usr/we-need-root/su-backup/",
"/system/xbin/mu/"};
for (String where : places) {
if (new File(where + binaryName).exists()) {
found = true;
break;
}
}
}
return found;
}
private static boolean isRooted() {
return findBinary("su");
}
Using this for uninstall app (tested)
Intent intent=new Intent(Intent.ACTION_DELETE);
String packageName = "yourpackagename";
intent.setData(Uri.parse("package:"+packageName));
startActivity(intent);