Игровая площадка не может прочитать ввод из строки commend.
Вы можете использовать пользовательскую функцию readLine () и глобальную входную переменную, каждый элемент входного массива представляет строку:
import Foundation
var currentLine = 0
let input = ["5", "5 6 3"]
func readLine() -> String? {
if currentLine < input.endIndex {
let line = input[currentLine]
currentLine += 1
return line
} else {
return nil
}
}
let firstLine = readLine() // 5
let secondLine = readLine() // 5 6 3
let thirdLine = readLine() // nil
Как сказал Йенс : «Это означает, что другие (произвольные) приложения, которые пользователь имеет на своем телефоне, могут привязываться к вашей службе и вызывать любой способ, который им нравится, который открывается через интерфейс AIDL».
У меня была такая же проблема, когда я обновил SDK до версии 20. Я удалил его, добавив android: экспортированное свойство android:exported="false"
, например:
<service android:name=".MyService"
android:exported="false">
<intent-filter>
<action android:name="org.example.android.myservicedemo.IService" />
</intent-filter>
</service>
См. этот doc
Если вы хотите ограничить использование активности вашим собственным приложением, вы должны добавить exported=false
в оператор манифеста вашего действия.
Если вы хотите разрешить другим приложениям использовать его (явно через его имя класса или, лучше, с использованием намерения с типом данных или действием), то у вас есть два варианта:
-
То же рассуждение относится к службе, с tools:ignore="ExportedService"
и контентом провайдеров с tools:ignore="ExportedContentProvider"
.
xmlns:tools="http://schemas.android.com/tools"
– Luis A. Florit
14 November 2012 в 01:02
The prefix "tools" for attribute "tools:ignore" associated with an element type "activity" is not bound
, и для его исправления не выбраны.
– Luis A. Florit
14 November 2012 в 15:52