Articles of android permissions

Android 6.0权限和安装OBB

我在Android 6.0及更高版本上遇到问题。 我正在使用的游戏是使用WRITE_EXTERNAL_STORAGE权限。 在Android 6.0及更高版本中,要求用户允许的警报必须显示。 我收到了一个摆脱这个警报的请求,这意味着游戏不能再使用WRITE_EXTERNAL_STORAGE了。 从技术上来说,游戏并不是在任何地方编写和阅读外部存储。 所有保存和caching的文件都存储在特定于应用程序的目录(/storage/emulated/0/Android/data/com.company.productname)中。但是,游戏必须读取(有时会下载)存储的OBB文件在/storage/emulated/0/Android/obb/com.company.productname目录下。 游戏可以访问这个目录,即使没有WRITE_EXTERNAL_STORAGE或READ_EXTERNAL_STORAGE设备: 摩托罗拉Nexus 6 LG Nexus 5 但它似乎没有无法访问此目录: 三星Galaxy S5,S6和S7 Nvidia Shield平板电脑 我已经检查过,即使使用阿尔法testing,以模拟从商店下载游戏。 当给予存储的权限(通过应用程序设置),然后一切运行良好。 OBB如何安装? 我使用的虚幻引擎4使用C open()函数来处理OBB文件: int32 Handle = open(LocalPath, O_RDONLY); 其中LocalPath是obb文件的完整path:/storage/emulated/0/Android/obb/com.company.productname/main.10003.com.company.productname.obb 问题是: 游戏是否需要读/写_EXTERNAL_STORAGE才能读取和下载OBB文件? 如果是的话,我怎么可能摆脱警告,要求用户的权限。 如果没有,那为什么三星Galaxy S系列会出现这样的麻烦?

哪些权限可以授予根设备?

简单而简单的问题: 根植设备可以授予应用程序在运行时的额外权限(使用“授予权限”命令使用adb,我记得)。 一个例子就是读取系统日志的能力,这个日志成为以API16开始的非用户许可(链接在这里 )。 有没有这样的权限列表?

在更改权限设置后,从最近的任务重新打开时,onCreate()会被调用

问题标题可能听起来很复杂,但这是我的情况。 我有一个活动内的地图片段。 简单。 打开存储权限以允许显示地图,工作正常。 通过按Homebutton背景应用程序,然后closures存储权限,并从最近的任务,应用程序崩溃打开应用程序。 问题不在于调用主机Activity的onResume(),而是在主机Activity以及Map碎片的onCreateView()上调用onCreate()。 因此它抛出exception。 看起来应用程序进程在更改权限时被终止,从而重新创build了活动。 09-24 14:42:55.071: E/AndroidRuntime(12918): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 09-24 14:42:55.071: E/AndroidRuntime(12918): Caused by: java.lang.NullPointerException: Attempt to write to field 'int android.support.v4.app.Fragment.mNextAnim' on a null object reference 09-24 14:42:55.071: E/AndroidRuntime(12918): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:718) 09-24 14:42:55.071: E/AndroidRuntime(12918): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489) 09-24 14:42:55.071: E/AndroidRuntime(12918): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:548) 从活动super.onStart()

语音search的权限

在我的ICS(Android 4.0.4)平板电脑上运行Google语音search会产生奇怪的行为,并显示以下警告: W/PackageManager( 1571): Unknown permission com.google.android.voicesearch.SHORTCUTS_ACCESS in package com.google.android.googlequicksearchbox W/PackageManager( 1571): Unknown permission com.google.android.voicesearch.AUDIO_FILE_ACCESS in package com.google.android.gm W/RecognitionManagerService( 1571): no available voice recognition services found I/ActivityManager( 1571): Start proc com.android.voicedialer for broadcast com.android.voicedialer/.VoiceDialerReceiver: pid=2130 uid=10033 gids={3002} I/ActivityManager( 1571): No longer want com.android.voicedialer (pid 2130): hidden #16 I/ActivityManager( 1571): Force stopping package com.google.android.voicesearch uid=10074 W/PackageManager( […]

FIleObserver和ContentObserver不能在Android Marshmallow中使用

我有两个FIleObserver和ContentObserver不工作在Android棉花糖的问题。 我正在使用这个东西来检测文件夹内发生的变化。 我设置了棉花糖的运行时权限。 但之后也没有显示任何事件。 它在其他版本完美的作品。 请帮我解决这个问题。 首先,我尝试使用Service中的Content Resolver来检测背景中的文件夹更改。 public class TestService extends Service { @Override public void onCreate() { super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { initial(); return START_STICKY; } public void initial(){ getContentResolver().registerContentObserver( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, true, new ContentObserver(new Handler()) { @Override public boolean deliverSelfNotifications() { Log.d("hai", "deliverSelfNotifications"); return super.deliverSelfNotifications(); } […]

android:uses-permission和uses-permission有什么区别?

这两个语法有什么区别? android:uses-permission和uses-permission 。 例如: <android:uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="18" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 当我创build一个从存储读取的活动时,第一个被Android Studio自动添加到清单。 另外为什么它添加一个android:maxSdkVersion属性,并专门将其设置为18,当我有targetSdkVersion项目设置为21。

为什么在Android棒棒糖上需要使用getExternalCacheDir()的WRITE_EXTERNAL_STORAGE权限?

我的应用程序将caching文件写入(并读取)到getExternalCacheDir()位置。 在Android棒棒糖之前(API 21)我一直在成功地使用这个权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" /> maxSdkVersion在那里,因为API v18之后不需要这个权限: http : //developer.android.com/reference/android/Manifest.permission.html#WRITE_EXTERNAL_STORAGE 但是,在Android棒棒糖(5.0)我得到了像这样的访问权限(我的日志输出显示实际使用的path): 11-19 13:01:59.257 4462-4541/com.murrayc.galaxyzoo.app E/android-galaxyzoo﹕ createCacheFile(): IOException for filename=/storage/emulated/0/Android/data/com.murrayc.galaxyzoo.app/cache/52 java.io.IOException: open failed: EACCES (Permission denied) at java.io.File.createNewFile(File.java:941) at com.murrayc.galaxyzoo.app.provider.ItemsContentProvider.createCacheFile(ItemsContentProvider.java:528) 我在模拟器和Nexus 4上看到了这一点。有没有改变,还是我一直在做错事? 我只想访问我自己的应用程序的caching。 更新:我现在只能在我的设备上看到这个(Nexus 4运行标准的Android 5.1.1,从我第一次有这个问题,甚至有一个新的Android刷新)。 我不再在模拟器中看到这个 – 当然系统映像已经被更新了好几次。

Android清单中的<permission-tree>是什么? 如何使用这个?

使用“权限”和“使用权限”标签,我们可以授予和访问权限。 那么为什么我们需要“权限树”,这种方式有用吗?

拨号号码没有提示

我正在尝试为Android平台编写一个函数,这将允许我在没有任何提示的情况下调用911。 我已经添加了权限android.permission.CALL_PRIVILEGED 。 我只需要一个按下我的选项菜单中的button即可拨打911的function。

如何解决无保护的SMS BroadcastReceiver皮棉警告

我的应用程序需要能够接收短信。 这一切正常,但我得到这个皮棉警告: 为SMS_DELIVER或SMS_RECEIVED声明意图filter的BroadcastReceivers必须确保调用者具有BROADCAST_SMS权限,否则恶意angular色可能欺骗意图。 我如何“确保调用者具有BROADCAST_SMS权限”? 在我的清单中,我有: <uses-permission android:name="android.permission.RECEIVE_SMS" /> <application …> <receiver android:name=".SmsReceiver" android:enabled="true" android:exported="true"> <intent-filter android:priority="1000"> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver> </application> 我的代码: public class SmsReceiver extends BroadcastReceiver { public SmsReceiver() {} @Override public void onReceive(final Context context, final Intent intent) { final Bundle bundle = intent.getExtras(); if (bundle != null) { final Object[] pdusObj […]