Использование файловой системы на Android в соответствии с политикой Google PlayAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Использование файловой системы на Android в соответствии с политикой Google Play

Сообщение Anonymous »

Я разработал веб -сервер в Java для Android, сервер реагирует на такие файлы, как index.hml в HTTP -запросы, и записывает некоторые файлы CSV из -за API. Я попытался опубликовать в Google Play, но он был отклонен, потому что она не соответствует политике Google Play, потому что ей требуется разрешение Manage_external_storage. https://support.google.com/googleplay/a ... /104679555 написано Если ваше приложение не требует доступа к разрешению Manage_external_Storage, вы должны удалить его из манифеста вашего приложения, чтобы успешно удовлетворить требования к рассмотрению политики.
Альтернативно, если ваше приложение «сломано» или сделано непригодным для этого разрешения, это, вероятно, ваше более раннее объявление было неправильно. Форма объявления разрешений, и повторно применить ваше приложение на консоли PLAY. /> Это не решает проблему, поскольку папка приложения скрыта для пользователя Android, пользователь должен быть в состоянии добавлять файлы в папку сервера, а файлы чтения, написанные сервером. Читать/написано из -за запроса, который пришел на сервер.

Мне нужно знать, как очистить документирование технического оправдания, если нет, поскольку пользователь способен получить доступ к папке сервера через файловую систему Android, мне нужно знать, как реализовать следующий код в соответствии с политикой Google Play:
new Thread() {
@Override
public void run() {
try {
ServerSocket server = new ServerSocket(8080);
String root_folder = "/storage/emulated/0/WebServerFiles/";
while(true) {
Socket socket = server.accept();
sleep(150);
byte[] request_bytes = new byte[socket.getInputStream().available()];
socket.getInputStream().read(request_bytes);

String request = new String(request_bytes);
if(request.startsWith("GET /")) {
int end_line_index = request.indexOf("\r\n");
int start_uri_index = "GET /".length() - 1;
int end_uri_index = start_uri_index + request.substring(start_uri_index).indexOf(" HTTP");
boolean valid_get = end_line_index != -1 && end_uri_index < end_line_index && start_uri_index < end_uri_index;

if (valid_get) {
try {
String requestURI = request.substring(start_uri_index, end_uri_index);

requestURI = java.net.URLDecoder.decode(requestURI, "UTF-8");
if (requestURI.endsWith("/")) {
requestURI = requestURI + "index.html";
}

String filePath = root_folder + requestURI;
File file = new File(filePath);

if (file.exists() && file.isFile()) {
StringBuilder response = new StringBuilder();
response.append("HTTP/1.1 200 OK").append("\r\n");
response.append("Content-length: ").append(file.length()).append("\r\n\r\n");
byte[] header_bytes = response.toString().getBytes("UTF-8");
int response_length = header_bytes.length + (int) file.length();
byte[] fileContent = new byte[response_length];
for (int i = 0; i < header_bytes.length; i = i + 1) {
fileContent = header_bytes;
}
new FileInputStream(file).read(fileContent, header_bytes.length, (int) file.length());
socket.getOutputStream().write(fileContent);
socket.close();
}
} catch(Exception e){
e.printStackTrace();
}
}
}
if(!socket.isClosed()){
String unespected_request = System.currentTimeMillis() + "," + socket.getRemoteSocketAddress().toString() + "," + Base64.getEncoder().encode(request_bytes) + "\n";
FileOutputStream fileOutputStream = new FileOutputStream(root_folder + "unespected_requests.csv", true);
fileOutputStream.write(unespected_request.getBytes("UTF-8"));
fileOutputStream.close();
socket.getOutputStream().write("HTTP/1.1 400 Bad Request\r\n\r\n".getBytes("UTF-8"));
socket.close();
}
}
} catch(Exception e){
e.printStackTrace();
}
}
}.start();


Подробнее здесь: https://stackoverflow.com/questions/796 ... lay-policy
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»