Is there a way to force apps to use internal memory only? I have a Sony Xperia U, and my 8GB of memory are divided in three parts: 2GB phone memory, 4 GB internal memory (replacing the MicroSD slot) and 2GB that I haven't really figured out about.

I don't want to mess with repartition. I just want to use each one as they must be used.

The problem is: many apps are optimized to save many things in SD, but for this phone it is not really useful, as it has plenty of space in phone memory! What can I do to make automatic created app data use internal memory only, leaving SD (internal, in Xperia U's case) free for my own use?

Edit: Thank you for your answers! John, my device is rooted, so, could you explain further about those permissions, please? Thanks in advance!
you say your phone is rooted, it is then possible to change the default installation location that the packagagemanager uses to install apps. this will only work with apps that allow it, as others have already pointed out, apps may choose to ignore the packagemanagers recommendation and install to internal/external anyway even if you choose the opposite. also, big game files in the obb directory are stored where the obb directory actually is located; this is dependent on which phone you use.

to change the default installation directory:

1) use terminal emulator from google play (or, alternatively, enable usb debugging and use adb)

2) in terminal emulator, enter:

su


accept the superuser request, then try either:

pm setInstallLocation X


or:

pm set-install-location X


where X can either be

0 = let packagamanager decide

1 = install on internal by default

2 = install on external by default