Android Permission Denial:这需要 android.permission.INTERACT_ACROSS_USERS_FULL
Posted
技术标签:
【中文标题】Android Permission Denial:这需要 android.permission.INTERACT_ACROSS_USERS_FULL【英文标题】:Android Permission Denial: this requires android.permission.INTERACT_ACROSS_USERS_FULL 【发布时间】:2014-02-22 14:34:24 【问题描述】:我有一个问题,我的 android 应用程序返回给我安全错误: 权限拒绝:获取/设置用户要求以用户 -2 身份运行但从用户 0 调用的设置;这需要 android.permission.INTERACT_ACROSS_USERS_FULL。
我已经在我的 android 清单上拥有此权限。 给我这个错误的代码如下:
public static JSONObject getLocationInfo(String address)
HttpGet httpGet = new HttpGet("http://maps.google.com/maps/api/geocode/json?address=" +address+"&ka&sensor=false");
HttpClient client = new DefaultHttpClient();
HttpResponse response;
StringBuilder stringBuilder = new StringBuilder();
try
response = client.execute(httpGet);
HttpEntity entity = response.getEntity();
InputStream stream = entity.getContent();
int b;
while ((b = stream.read()) != -1)
stringBuilder.append((char) b);
catch (ClientProtocolException e)
catch (IOException e)
JSONObject jsonObject = new JSONObject();
try
jsonObject = new JSONObject(stringBuilder.toString());
catch (JSONException e)
// TODO Auto-generated catch block
e.printStackTrace();
return jsonObject;
public static GeoPoint getGeoPoint(JSONObject jsonObject)
Double lon = new Double(0);
Double lat = new Double(0);
try
lon = ((JSONArray)jsonObject.get("results")).getJSONObject(0)
.getJSONObject("geometry").getJSONObject("location")
.getDouble("lng");
lat = ((JSONArray)jsonObject.get("results")).getJSONObject(0)
.getJSONObject("geometry").getJSONObject("location")
.getDouble("lat");
catch (JSONException e)
// TODO Auto-generated catch block
e.printStackTrace();
return new GeoPoint((int) (lat * 1E6), (int) (lon * 1E6));
我在这里使用此代码:
String addr_tmp = addr.replaceAll(" ", "%20");
GeoPoint p1 =getGeoPoint(getLocationInfo(addr_tmp));
latitude = String.valueOf(p1.getLatitudeE6() / 1E6);
longitude = String.valueOf(p1.getLongitudeE6() / 1E6);
params.add(new BasicNameValuePair("latitude", latitude));
params.add(new BasicNameValuePair("longitude", longitude));
它在我的模拟器上完美运行,纬度和经度具有正确的值。 但是在我的手机(三星 Galaxy S4)上,它返回纬度 = 0 和经度 = 0,并出现我告诉你的错误。 我真的不明白为什么我有这个错误。 提前感谢您的提示。
【问题讨论】:
我想知道它是否来自谷歌的请求,它返回我超出了我的配额,这很奇怪,因为我只做了一个请求......它仍然适用于我的模拟器。 【参考方案1】:有时这个特定错误实际上是误导性的,并且是由其他运行时问题引起的。
我记录了一个这样的例子 here - 一个被抛出的 NullPointerException 最终被报告为同样的错误,即使它与跨用户权限无关。
我不确定你是否属于这种情况,但需要检查一下。
【讨论】:
请注意 link-only answers 是不鼓励的,所以答案应该是寻找解决方案的终点(与另一个中途停留的参考相比,随着时间的推移往往会变得陈旧)。请考虑在此处添加独立的概要,并保留链接作为参考。以上是关于Android Permission Denial:这需要 android.permission.INTERACT_ACROSS_USERS_FULL的主要内容,如果未能解决你的问题,请参考以下文章
Permission Denial:开放提供者 Android Studio
Android之启动奔溃提示异常java.lang.SecurityException: Permission Denial: startForeground
Android之启动奔溃提示异常java.lang.SecurityException: Permission Denial: startForeground
Android之启动奔溃提示异常java.lang.SecurityException: Permission Denial: startForeground
已解决Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
使用GAPID报错Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS