Здесь у меня есть простое решение, - (проверка множественного разрешения)
String[] permissions = new String[]{
Manifest.permission.WRITE_CALL_LOG,
Manifest.permission.READ_CALL_LOG,
Manifest.permission.READ_CONTACTS,
Manifest.permission.WRITE_CONTACTS}; // Here i used multiple permission check
Затем вызовите его в Oncreate
if (checkPermissions()) {
// permissions granted.
getCallDetails();
}
Наконец, скопируйте приведенный ниже код
private boolean checkPermissions() {
int result;
List<String> listPermissionsNeeded = new ArrayList<>();
for (String p : permissions) {
result = ContextCompat.checkSelfPermission(getApplicationContext(), p);
if (result != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(p);
}
}
if (!listPermissionsNeeded.isEmpty()) {
ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]), MULTIPLE_PERMISSIONS);
return false;
}
return true;
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case MULTIPLE_PERMISSIONS: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permissions granted.
getCallDetails(); // Now you call here what ever you want :)
} else {
String perStr = "";
for (String per : permissions) {
perStr += "\n" + per;
}
// permissions list of don't granted permission
}
return;
}
}
}
Вы могли попробовать комплект разработчика программного обеспечения 1.1
Microsoft Windows MultiPoint или новое комплект разработчика программного обеспечения 1.5
Microsoft Windows MultiPoint и основное Microsoft Multipoint сайт
Да. Я знаю о по крайней мере одной программе, которая делает это, KidPad. Я думаю, что это записано в Java и было разработано Juan Pablo Hourcade , теперь в Университете Айовы. Необходимо было бы спросить его, как это было реализовано.
http://code.google.com/p/pymultimouse/ является входом сырых данных окон использования библиотеки, он работал в тесте с 2 мышами.
Вы могли использовать DirectInput с C/C++ (существует, вероятно, также привязка на других языках). Вы используете IDirectInput8::EnumDevices()
(использующий DX8; та же функция, различный интерфейс в других версиях DirectX) для получения списка всех подключенных устройств. Затем Вы создаете устройства и опрашиваете их IDirectInputDevice8::Poll()
. Это должно почти определенно работать с любым количеством мышей, клавиатур и других устройств ввода данных. MSDN имеет действительно хорошую документацию относительно этого.
У меня есть это неопределенное чувство, что BeOS раньше позволяла одной паре мышь и клавиатура и имела отдельные активные окна и исходные данные. Ничего себе... это было давным-давно. Я думал, что это будет очень интересно для "парного" программирования.
Смотрите мой ответ здесь (избегайте JNI): Как я могу обрабатывать несколько вводов мышью в Java?