Questions tagged «android-permissions»

AndroidManifest.xml中的权限,该权限允许应用执行默认情况下不允许的某些操作


11
如何以编程方式打开Android棉花糖上特定应用的权限屏幕?
我对新的Android Marshmallow版本有疑问: 是否可以通过Intent或类似方法显示特定应用程序的权限屏幕? 可以使用以下代码显示应用程序设置-是否存在用于直接打开权限屏幕的模拟解决方案? startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", getPackageName(), null))); 我已经对此进行了一些研究,但无法找到合适的解决方案-我将不胜感激!

24
Android M-检查运行时权限-如何确定用户是否选中了“不再询问”?
据此:http : //developer.android.com/preview/features/runtime-permissions.html#coding应用程序可以检查运行时权限,如果尚未授予运行权限,则可以请求权限。然后将显示以下对话框: 万一用户拒绝重要许可,则imo应用程序应显示解释为何需要此许可以及拒绝影响如何。该对话框有两个选项: 重试(再次请求许可) 拒绝(未经该许可,该应用将可以运行)。 Never ask again但是,如果用户进行了检查,则不应显示带有说明的第二个对话框,特别是如果用户之前已经拒绝过一次。现在的问题是:我的应用程序如何知道用户是否已检查Never ask again?IMO onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)没有给我该信息。 第二个问题是:Google是否计划在权限对话框中加入自定义消息,以解释应用程序为何需要权限?这样,就不会再有第二个对话框,它肯定会带来更好的用户体验。

30
Android上的异常“打开失败:EACCES(权限被拒绝)”
我正进入(状态 打开失败: EACCES (Permission denied) 在线上 OutputStream myOutput = new FileOutputStream(outFileName); 我检查了根,然后尝试了android.permission.WRITE_EXTERNAL_STORAGE。 我该如何解决这个问题? try { InputStream myInput; myInput = getAssets().open("XXX.db"); // Path to the just created empty db String outFileName = "/data/data/XX/databases/" + "XXX.db"; // Open the empty db as the output stream OutputStream myOutput = new FileOutputStream(outFileName); // Transfer …

24
Android M权限:未调用onRequestPermissionsResult()
我正在更新我们的应用程序以使用新的M运行时权限系统。除了onRequestPermissionsResult()外,其他所有功能都可以使用。我需要检查按下按钮的权限,如果成功,请发送短信。当我授予执行权限时,对话框关闭,但是直到再次按下按钮时,它才触发“发送文本”。 我已经在onRequestPermissionsResult()方法中调试并设置了断点,但是它从来没有涉及到它。 首先调用此方法: private void askForPermission() { String[] permissions = new String[]{Manifest.permission.SEND_SMS}; ActivityCompat.requestPermissions(getActivity(), permissions, PERMISSIONS_CODE); } 然后我的回调如下所示: @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == PERMISSIONS_CODE) { for (int i = 0; i < permissions.length; i++) { String permission = permissions[i]; int …

4
拒绝权限:startForeground需要android.permission.FOREGROUND_SERVICE
最近,我们突然看到了以下一些堆栈跟踪。为什么会这样呢?这是从应用程序尝试通过媒体通知和所有内容将音频评论服务移至前台时开始的。 java.lang.SecurityException: Permission Denial: startForeground from pid=1824, uid=10479 requires android.permission.FOREGROUND_SERVICE at android.os.Parcel.createException(Parcel.java:1942) at android.os.Parcel.readException(Parcel.java:1910) at android.os.Parcel.readException(Parcel.java:1860) at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:5198) at android.app.Service.startForeground(Service.java:695) at com.example.app.services.AudioService.setUpMediaNotification(AudioService.java:372) at com.example.app.services.AudioService.setUpAndStartAudioFeed(AudioService.java:328) at com.example.app.services.AudioService.onStartCommand(AudioService.java:228) at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3667) at android.app.ActivityThread.access$1600(ActivityThread.java:199) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1681) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: android.os.RemoteException: Remote stack …

13
即使我声明了Android权限也无法使用
我正在尝试编写代码以从Android应用发送短信,但是当我尝试发送短信时,它会向我发送错误消息: 09-17 18:37:29.974 12847-12847/**.**.****E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: **.**.****, PID: 12847 java.lang.SecurityException: Sending SMS message: uid 10092 does not have android.permission.SEND_SMS. at android.os.Parcel.readException(Parcel.java:1599) at android.os.Parcel.readException(Parcel.java:1552) at com.android.internal.telephony.ISms$Stub$Proxy.sendTextForSubscriber(ISms.java:768) at android.telephony.SmsManager.sendTextMessageInternal(SmsManager.java:310) at android.telephony.SmsManager.sendTextMessage(SmsManager.java:293) at **.**.****.MainActivity$3.onClick(MainActivity.java:70) at android.view.View.performClick(View.java:5198) at android.view.View$PerformClick.run(View.java:21147) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) …


22
Android 6.0多重权限
我知道Android 6.0拥有新的权限,我知道可以使用类似这样的名称 if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, PERMISSION_WRITE_STORAGE); } 今天,我看到了一个需要3个权限的Google应用:联系人,短信和摄像头。它正在制作第1-3页,并同时将它们一起调用以激活。 有人可以告诉我如何调用4个权限来同时激活短信,摄像头,联系人和存储吗? 示例(忘记了Google应用的名称:() 该应用需要短信,联系人和相机 该应用程序问我(并在第1-3页进行了对话框)激活短信,激活联系人,然后激活相机。所以这个谷歌应用程序一起调用了所有3个必需的权限,我的问题是我怎么能达到相同的权限?

10
如何在Android设备中检测来电?
我正在尝试制作一个类似的应用程序,当电话打来时,我想检测该号码。以下是我尝试过的方法,但未检测到来电。 我想MainActivity在后台运行我,该怎么办? 我已经在manifest文件中给予了许可。 <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 清单中还应该提供其他内容吗? public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test_layout); } public class myPhoneStateChangeListener extends PhoneStateListener { @Override public void onCallStateChanged(int state, String incomingNumber) { super.onCallStateChanged(state, incomingNumber); if (state == TelephonyManager.CALL_STATE_RINGING) { String phoneNumber = incomingNumber; } } } }

5
如何从Android棉花糖中的服务请求权限
在Android Marshmallow中,应在需要时在运行时请求权限,而不是在安装应用程序时立即请求所有权限。但是,我似乎只能向活动请求权限,这是一个问题,因为我的应用程序仅包含服务。(为什么会这样,您可能会问?该应用程序捆绑了一个Android Wear表盘,并且所有手机所做的只是查找附近的照片以发送至手表-无需进行“活动”。但它确实需要位置权限。) 因此,有什么方法可以向服务请求权限吗?还是以某种方式强制像过去一样在安装时授予权限?

9
如何检查片段中的权限
我想检查片段中的权限。 我的代码: // Here, thisActivity is the current activity if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // Should we show an explanation? if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), android.Manifest.permission.ACCESS_FINE_LOCATION)) { // Show an explanation to the user *asynchronously* -- don't block // this thread waiting for the user's response! After the user // sees the …


5
SYSTEM_ALERT_WINDOW-如何在Android 6.0和targetSdkVersion 23上自动获取此权限
Facebook,Evernote,Pocket-所有应用程序的目标是23(targetSdkVersion=23),它们都会自动在Android 6.0上获得此权限。 关于新的棉花糖权限模型,已经有很多文档。其中之一是SYSTEM_ALERT_WINDOW被“提升”为“高于危险”权限类别,因此需要特殊的用户干预才能与这些用户一起授予应用程序权限。如果应用程序的版本为targetSdkVersion22或更低,则应用程序会自动获得此权限(如果清单中要求)。 但是,我注意到有些应用程序具有此权限,而无需将用户引导到的设置特殊页面 Draw over other apps权限的。我看到了Facebook,Evernote,Pocket-也许还有更多。 任何人都知道如何在不经过用户的情况下为应用授予此权限 Settings -> Apps -> Draw over other apps? 谢谢

5
我什么时候应该使用ACCESS_COARSE_LOCATION权限?
我正在构建一个Android应用程序,该应用程序将跟踪用户的地理位置并在地图上绘制其路线。 我使用的是谷歌播放服务的位置API,如所描述这里。 很明显,我的应用程序需要ACCESS_FINE_LOCATION许可,我将其放入清单中: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 我还需要ACCESS_COARSE_LOCATION许可吗?我需要粗略位置的用例是什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.