Итак, проблема связана с новой обработкой разрешений. Вы должны попросить разрешения, прежде чем переходить к коду Wi-Fi. Вот пример:
// call this method only if you are on 6.0 and up, otherwise call doGetWifi()
private void getWifi() {
if (checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}, 0x12345);
} else {
doGetWifi(); // the actual wifi scanning
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == 0x12345) {
for (int grantResult : grantResults) {
if (grantResult != PackageManager.PERMISSION_GRANTED) {
return;
}
}
getWifi();
}
}
Эта проверка должна выполняться в Activity.
Исходный образец кода доступен здесь , изменен в соответствии с проблемой, обсуждаемой в этом разделе.
Согласно связанным изменениям API , ваша заявка должна иметь один из разрешения на размещение. Цитата:
WifiManager.getScanResults (): ваше приложение должно иметь разрешение ACCESS_FINE_LOCATION или ACCESS_COARSE_LOCATION.
blockquote>Также обратите внимание, что есть новый логический ключ , полученный вашим BroadcastReceiver в действии
SCAN_RESULTS_AVAILABLE_ACTION
:EXTRA_RESULTS_UPDATED
. Это показывает, завершено ли сканирование, и вы можете получить доступ к результатам, вызвавwifiManager.getScanResults()
.
Нет никакого стандартного ответа для Вашего вопроса. "Базируйтесь 36", по совпадению удобно для разговора о потому что:
Однако нет никакого универсально принятого соглашения для того, в какую последовательность символов можно было бы рисковать после 'z'.
Ну, посмотрите основа 64 : 0-9, A-Z, a-z и затем несколько символов в зависимости от контекста. (Base64 для сети имеет тенденцию отличаться от других схем избежать проблем кодирования URL/HTML.)
Электронные часы (базируются 60) использование основывают 10 чисел как символы и разделяют их с символом разделителя (как ':'). Таким образом, у Вас никогда не заканчивались символы!
Base64 добавляет символы нижнего регистра и + и/.
Я пошел бы для 0-9, тогда прописные буквы A-Z, затем альфа к омеге в нижнем регистре. Это получает Вас к 60. После этого я пошел бы с ответом Jeremy.
Вавилоняне использовали шестидесятеричную математику с десятичными числами в группировках, чтобы сформировать основание 60 цифр для различных 60-х разрядов. (Здесь мы получаем всю математику с основанием 60, используемую в углах и времени.) Это, вероятно, самый старый прецедент метода создания некоторой формы числа с основанием N с использованием чисел с основанием 10.
Стандартный способ записи адресов IPv4 можно рассматривать как представление с базой 256, где десятичные числа разделены точками.
, может быть, китайский? Википедия говорит, что в словаре Kangxi 47 035 символов!
Это просто: 0..9 ++ A..Z ++ a..z ++ 阿 .. 中. Не может быть проще.