Краткий ответ: Вы не можете. Но вы действительно можете сделать это сложнее.
Что бы вы ни делали, это можно будет обойти - проверка пользовательского агента чрезвычайно легко обойти; вызов-ответ потребует разборки вашего приложения, но это все еще возможно.
Однако, все ваши хорошие средства защиты не помогут от перехвата сети. Если вы также не зашифруете передачу, кто-то может просто перехватить данные в незашифрованном виде вместо того, чтобы нарушить вашу «защиту».
ИМО главный вопрос должен быть не «Как я могу защитить его», а «Почему кто-то хочет получить необработанные данные?