xmts, а какая "проблемка"? Не скачивается, не меняет имя или что? Ты не закончил предложение
Вообще это старая проблема webview иногда глючит особенно с русскими названиями
У тебя точно в пути все буквы на английском, без пробелов и спецсимволов?
В твоем коде 2 раза указывается content-type
Попробуй следующий код
$randName = 'Твое имя файла';
$asciiName = preg_replace('/[^a-zA-Z0-9._-]/', '_', $randName);
$encodedName = rawurlencode($randName);
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private', false);
header('Content-Type: application/vnd.android.package-archive');
header('Content-Disposition: attachment; filename="' . $asciiName . '"; filename*=UTF-8\'\'' . $encodedName);
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('X-Content-Type-Options: nosniff');
Вот тут спецификация если что
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Disposition
еще нашел, что рекомендуют убрать пробелы после точки с запятой
header('Content-Disposition: attachment;filename="' . $asciiName . '";filename*=UTF-8\'\'' . $encodedName);