Articles of 权限

使用NetworkStatsManager获取移动数据使用历史记录

我想知道数据使用历史,并注意到“新”android-6 NetworkStatsManager似乎是积极的(我已经使用了TrafficStats一段时间,但不会涵盖任何重启之前的任何事情)。 从API文档: 注意:此API需要权限PACKAGE_USAGE_STATS,这是系统级权限,不会授予第三方应用程序。 但是,声明权限意味着使用API​​的意图,并且设备的用户可以通过“设置”应用程序授予权限。 配置文件所有者应用程序自动被授予查询其管理的配置文件上的数据的权限(即,除querySummaryForDevice(int,String,long,long)之外的任何查询)。 设备所有者应用程序同样可以访问主要用户的使用数据。 我想知道聚合级别的数据使用情况,而不是使用数据的应用程序,所以我试着像这样使用它: NetworkStatsManager service = context.getSystemService(NetworkStatsManager.class); NetworkStats.Bucket bucket = service.querySummaryForDevice(ConnectivityManager.TYPE_MOBILE, null, from, to); … 不幸的是,抛出SecurityException : java.lang.SecurityException: NetworkStats: Neither user 10174 nor current process has android.permission.READ_NETWORK_USAGE_HISTORY. at android.os.Parcel.readException(Parcel.java:1620) at android.os.Parcel.readException(Parcel.java:1573) at android.net.INetworkStatsSession$Stub$Proxy.getDeviceSummaryForNetwork(INetworkStatsSession.java:259) at android.app.usage.NetworkStats.getDeviceSummaryForNetwork(NetworkStats.java:316) at android.app.usage.NetworkStatsManager.querySummaryForDevice(NetworkStatsManager.java:100) … 第三方应用程序不允许使用android.permission.READ_NETWORK_USAGE_HISTORY权限。 所以这似乎是一个死胡同。 但是,我深入研究了内部结构,发现您可以使用内部/隐藏API执行相同的操作而无需请求任何权限: INetworkStatsService service = INetworkStatsService.Stub.asInterface( ServiceManager.getService(Context.NETWORK_STATS_SERVICE)); INetworkStatsSession session = service.openSession(); […]

Android 6 getAccountName()缺少android.permission.GET_ACCOUNTS

我在Android 6设备上运行时遇到以下exception。 java.lang.SecurityException: Missing android.permission.GET_ACCOUNTS 这看起来像是一个相当直接的例外,但对我来说并非如此。 我的清单看起来像这样: <application … 抛出此exception的代码段如下: mLoggedInEmail = Plus.AccountApi.getAccountName(mGoogleApiClient); 在Android 5设备上它工作得很好。

Android NDK限制?

我对Android平台上本机代码的限制有疑问。 基本上我已经开发了一个本机C代码库,它使用UDP套接字进行SIP / RTP,并使用OpenAL进行音频录制/回放 – 基本上是整个应用程序。 我们的想法是尽可能使用本机C代码而不是Java代码。 我想这样做是因为我将在其他平台上使用它。 我的问题很简单 – 是否可以只使用Java进行GUI,然后使用本机代码进行所有处理? 当我的本机代码尝试创建套接字,绑定它,录制音频,播放它等时会发生什么 – 因为它是本机代码,我是否需要为它设置权限(例如应用程序访问麦克风和诸如此类)或将它只是绕过这个东西,因为它的本机代码? 原生代码可以像在PC上那样在Android上做任何想做的事吗? 对不起,如果不清楚; 告诉我,我会尝试改进它 谢谢

adb shell的BroadcastReceiver权限

考虑使用BroadcastReceiver实现简单目标的简单工具。 因为其他应用程序不应该使用它,所以它使用signature或signatureOrSystem定义权限: 现在我想通过发送广播来测试这个 adb shell am broadcast -n any.test/.Receiver 从我的电脑。 虽然这在模拟器上完全正常,但在设置此权限时,它在真实设备上根本不起作用。 如果未设置权限,则一切都按预期工作。 那么如何定义或授予权限以便我可以在具有ADB的真实设备上测试所有这些? 我想在调试模式下使这个导出的接收器更安全,所以如果有一个特殊的ADB使用权限或运行时测试只允许来自ADB调用我可以在Receiver.onReceive(Context, Intent)中实现它,也会有所帮助。 接收方不必同时为ADB和其他应用程序工作。

permission.READ_CONTACTS似乎不起作用

我正在开发一个浏览用户联系人的简单应用程序。 不幸的是我一直收到以下错误: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.HtcContactsProvider2 uri content://com.android.contacts/contacts from pid=27455, uid=10171 requires android.permission.READ_CONTACTS 我的清单文件如下所示: 我试图通过以下方式查看我的联系人: Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 我试图将或android:permission=”android.permission.READ_CONTACTS”到或 ,但两者都不起作用。 我的选择已经用完了,有人知道我在这里缺少什么吗?

Android:adb:将文件复制到/ system(权限被拒绝)

实际上我尝试在我的HTC Desire上安装busybox。 因此,我尝试将busybox-binary复制到/ system / bin。 所以我用rw重新安装/系统: mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system 在此之后我没有得到“只读文件系统” – 错误。 但是现在我在尝试将文件推送到/ system / bin时遇到“Permission denied”。 我也尝试将我的文件推送到/ sdcard,然后将其移动到/ system / bin,但这也不起作用: $ mv /sdcard/busybox /system/bin failed on ‘/sdcard/busybox’ – Cross-device link 一些想法,如何解决这个问题?

android权限唤醒锁有什么用?

何时以及为何使用android权限 。 请提供有关唤醒锁定的示例代码。

什么function或代码需要Android中的GET_TASKS权限?

我认为GET_TASKS权限是我AndroidManifest.xml中的孤行。 我想安全地删除它。 您是否知道需要此权限的任何function或代码? 谢谢。

Android – 在应用项目中拥有提供商权限

一个android库项目包含一些提供者,其权限在合同类中定义如下: public static final String CONTENT_AUTHORITY = “my.com.library.providers.tester”; private static final Uri BASE_CONTENT_URI = Uri.parse(“content://” + CONTENT_AUTHORITY); 现在有很多应用程序项目使用这个库项目。 我目前面临的问题是,对于每个应用程序项目,我需要在库项目中为每个应用程序设置一个单独的分支,以便拥有唯一的内容权限。 这会产生一些版本管理问题(例如将function/错误修复从一个分支传播到每个其他分支等)。 相反,我想将定义内容权限的责任委托给app项目。 有办法实现这个目标吗?

ACCESS_FINE_LOCATION AndroidManifest权限未被授予

我试图在Android(2.2和2.3)中使用GPS,但是当我尝试使用LocationManager对象时出现以下错误: WARN/System.err(522): java.lang.SecurityException: Provider network requires ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permission 我在其他post中研究了这个问题,它们通常是由于AndroidManifest.xml的问题。 然而,我的似乎很好: 以下是GetLocation Activity中我的onCreate方法中令人讨厌的代码行,包含在try / catch块中: LocationManager locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); final LocationListener locListener = new MyLocListener(); try{ locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locListener); } catch (SecurityException se){ ((TextView)findViewById(R.id.infobox)).setText(se.toString()); se.printStackTrace(); } 这是我写的第一个应用程序,我需要请求Android权限,并且迄今为止未被授予任何权限。 在我的清单中或者在我的eclipse配置中是否有我遗漏的东西?