Android定位开发,API版本为23,提示没有权限

Android定位开发,API版本为23,提示没有权限,第1张

源码中被用来检查和请求权限的方法分别是Activity的checkSelfPermission和requestPermissions。这些方法api23引入,如下代码:

private static final String TAG = "Contacts"

private void insertDummyContact() {

// Two operations are needed to insert a new contact.

ArrayList<ContentProviderOperation>operations = new ArrayList<ContentProviderOperation>(2)

// First, set up a new raw contact.

ContentProviderOperation.Builder op =

ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)

.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)

.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)

operations.add(op.build())

// Next, set the name for the contact.

op = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)

.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)

.withValue(ContactsContract.Data.MIMETYPE,

ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)

.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,

"__DUMMY CONTACT from runtime permissions sample")

operations.add(op.build())

// Apply the operations.

ContentResolver resolver = getContentResolver()

try {

resolver.applyBatch(ContactsContract.AUTHORITY, operations)

} catch (RemoteException e) {

Log.d(TAG, "Could not add a new contact: " + e.getMessage())

} catch (OperationApplicationException e) {

Log.d(TAG, "Could not add a new contact: " + e.getMessage())

}

}

wst423的回答确实正确,除非你不用新安卓手机或者给新安卓手机做些手脚,否则“禁用权限还能打开APP”这个功能就不能实现。6.0及其以后的系统把权限下放到了APP,哪个APP厂商傻到把自己给禁用了?如果你实在需要隐私保护,你可以继续使用老手机。或者像我一样转战ios手机。我当年是安卓粉,苹果黑粉,就是因为苹果贵。但是如果按一条隐私一块钱算,使用新安卓手机一年之后,就是好几万元RMB啊!够买多少个苹果手机了呢?我这么说显得有些做广告了,但是你可以想想,苹果手机不用做广告就可以买的很好,安卓手机的广告费始终居高不下。因为安卓的开发公司谷歌就是广告公司,收集到的信息都商业化了,所以价格低嘛!苹果公司的十个企业理念里面有一个写的非常好就是保守秘密,他们能守住自己的秘密我相信也能守住我的秘密,服务与价值对等,苹果手机贵就有贵的硬道理!

在 android 类中隐藏的权限。Manifest.permission.它似乎无用,因为获取引发安全异常。这是为什么?如何使用隐藏的权限?

解决方法 1:

这是为什么?

某些权限要求您的应用程序相同的签名密钥签名固件由签署。

你要么由签署,签署了固件,同一签名密钥,或被安装在系统分区上 (例如,根深蒂固的设备的用户) 的应用程序需要其他权限。

普通的 SDK 应用程序不能存放这些权限。不幸的是,JavaDocs 不能解释的权限有哪些要求。

如果你看看平台清单,这些权限与 signature 的一部分作为其 android:protectionLevel 允许应用程序,如果他们签署了由相同的签名密钥签名固件举行该权限。那些以 system 作为的一部分 android:protectionLevel 可以由应用程序安装在系统分区中举行。

因此,例如:

<!-- Required to be able to reboot the device. -->

<permission android:name="android.permission.REBOOT"

android:label="@string/permlab_reboot"

android:description="@string/permdesc_reboot"

android:protectionLevel="signature|system" />

此权限可以由应用程序签署由相同的签名密钥签署的固件或安装在系统分区上举行。

<!-- Required to be able to disable the device (very dangerous!). -->

<permission android:name="android.permission.BRICK"

android:label="@string/permlab_brick"

android:description="@string/permdesc_brick"

android:protectionLevel="signature" />

此权限只可以由应用程序签署由相同的签名密钥签名固件举行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11768394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存