Я разработал веб -сервер в 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
Использование файловой системы на Android в соответствии с политикой Google Play ⇐ Android
Форум для тех, кто программирует под Android
1746227881
Anonymous
Я разработал веб -сервер в Java для Android, сервер реагирует на такие файлы, как index.hml в HTTP -запросы, и записывает некоторые файлы CSV из -за API. Я попытался опубликовать в Google Play, но он был отклонен, потому что она не соответствует политике Google Play, потому что ей требуется разрешение Manage_external_storage. https://support.google.com/googleplay/android-developer/answer/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[i] = header_bytes[i];
}
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();
Подробнее здесь: [url]https://stackoverflow.com/questions/79604232/use-of-file-system-on-android-in-compliance-with-google-play-policy[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия