标签: android-permissions

如何在 android 6 及以上版本中使用permissionDispatcher库在运行时请求`onResume()`权限

我想在每次 Activity 进入屏幕时请求用户的位置(我认为这里唯一的选择是 Activity 的onResume()方法),并且我想(并且应该)支持 Android 6 的新运行时权限模型。

我正在使用PermissionDispatcher库,它工作得很好。问题是正如这个问题所暗示的,如果我调用一个在方法中请求权限的函数onResume()并且用户拒绝该权限,它将陷入无限循环。

但我的问题是,由于我想获取用户在活动的每次出现时的位置,除了使用该方法之外,我想不出其他方法onResume()(因此,如果用户拒绝权限,就会陷入无限循环)。

这是我的代码示例:

    @NeedsPermission(Manifest.permission.ACCESS_FINE_LOCATION)
    void startLocationUpdate() {
        mLocationLoadingDialog.show();
        LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
    }

    @OnShowRationale(Manifest.permission.ACCESS_FINE_LOCATION)
    void showRationalForFineLocation(final PermissionRequest request) {
        new AlertDialog.Builder(this)
                .setMessage("this app needs your permission to get your location")
                .setPositiveButton("ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        request.proceed();
                    }
                })
                .setNegativeButton("no way", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        request.cancel();
                        exitApp();
                    }
                })
                .setCancelable(false) …
Run Code Online (Sandbox Code Playgroud)

java android permission-denied android-permissions

0
推荐指数
1
解决办法
2025
查看次数

如何在合并清单中找到权限来源?

我向 Android 应用程序添加了一些库,上传到 Google Play 商店后,我收到了以下警告:

在此处输入图片说明

主清单文件没有声明这个权限,所以我假设它来自一个库。然后我查看了之前版本的源代码,没有使用这个权限。

在Android Studio中查看合并后的manifest文件,还是看到了权限: 在此处输入图片说明

当我单击此权限的“转到声明”时,它会将我带到未声明此权限的主清单文件。

我尝试清理并重建项目并重新启动 Android Studio,但权限仍显示在 Android Studio 的合并清单选项卡中。它显示在debugrelease构建变体中。

这是为什么?

android android-permissions android-studio

0
推荐指数
1
解决办法
248
查看次数

在 Android Studio 中,无法在 java 代码中添加读写权限来检查权限,并且只能使用 DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

在Android Studio中,我无法在java代码中添加READ_EXTERNL_STORAGE和WRITE_EXTERNL_STORAGE权限来检查权限,并且只能添加DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION。甚至我也在清单文件中提到了它们。请检查随附的屏幕截图。

具有 DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION 的 Java 代码

我想使用的Java代码(权限)

我也已经在清单文件中添加了这些权限。

任何人请帮助解决此错误,我们将不胜感激。

我想在我的java代码中添加READ_EXTERNL_STORAGE和WRITE_EXTERNL_STORAGE权限,以在android studio中使用应用程序时检查权限。请参阅随附的屏幕截图

Java代码(权限)需要使用

java android android-permissions android-studio android-studio-3.0

0
推荐指数
1
解决办法
508
查看次数

请求推送通知的许可

我正在使用应用程序,我需要使用推送通知.我知道推送通知是正常的权限,所以我不能在运行时询问它.但是我会在用户下载并安装应用程序时插入权限,通知应用程序应该发送推送通知.我该怎么做?我必须在清单中插入一些东西吗?谢谢

android push-notification android-permissions

-1
推荐指数
7
解决办法
3万
查看次数

如何从 Android 应用程序运行 root 命令?

我想编写一个应用程序来根植安装它的设备,我的意思是通过安装这个应用程序,您将能够在没有计算机的情况下根植您的设备,就像以下链接中的应用程序一样,

http://www.kingoapp.com/root-tutorials/how-to-root-android-without-computer.htm

我已经搜索了很多关于如何使用 Android 设备的 Java 代码来做到这一点,但我没有明确的解决方案。根据我的研究,我认为我们需要以下步骤:

1- 能够在 Android 中使用 shell 命令使用 Runtime.getRuntime().exec();

2-执行获得root权限的命令(我认为su,但这需要一个root设备才能执行)。

3- 启动一个 root 命令,该命令将 root 设备。

我找不到有关如何执行上述步骤的代码说明。我想先了解一下这个过程,里面可以用到的命令,然后我想尝试自己实现。由于商店中提供此功能的应用程序很多,因此实现它必须是可行的。

任何人都可以向我解释如何实施这个过程吗?

另外,是否有可能为相反的过程编写代码,即取消设备的root 权限?

任何帮助表示赞赏。

谢谢。

linux android chroot root android-permissions

-2
推荐指数
1
解决办法
3996
查看次数

我的Android应用程序被PlayStore拒绝了

我正在将应用程序上载到Android PlayStore中,并且由于其中的SMS权限而被拒绝,但是在Manifest.xml文件中没有添加SMS权限

与Google小组进行对话后,他们说短信允许使用,但我找不到。

以下是Google团队提供的屏幕截图,并且该屏幕截图具有短信权限。

屏幕截图由Google Team共享

我的清单文件看起来像这样

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.msonline.android">

    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <application
        android:name=".ApplicationClass"
        android:allowBackup="true"
        android:icon="@drawable/app_icon"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/MSOAppTheme"
        tools:ignore="AllowBackup,GoogleAppIndexingWarning"
        tools:replace="android:allowBackup,android:icon,android:label,android:theme">

//Other declarations of Activities

    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

预先感谢任何帮助。

编辑#1

build.gradle

    apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "package name"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 31
        versionName "4.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
                    multiDexEnabled true
        vectorDrawables.useSupportLibrary …
Run Code Online (Sandbox Code Playgroud)

android android-manifest android-permissions developer-console

-2
推荐指数
1
解决办法
153
查看次数

Signal Private Messanger - 权限?

RedPhone和TextSecure已迁移到Signal,但我有点担心Signal应用程序需要的所有权限.为什么信号需要ex.位置和日历?我试图搜索它,但找不到任何有关它的信息.

Signal Private Messager所需的权限:

  • 设备和应用历史记录
  • 身分
  • 日历
  • 往来
  • 地点
  • 短信
  • 电话
  • 照片/媒体/档案
  • 存储
  • 相机
  • 麦克风
  • Wi-Fi连接信息
  • 设备ID和呼叫信息

除了"其他"权限.

任何人都可以向我解释为什么这个应用需要这么多的权限,以及不同的权限用于什么?

android privacy android-permissions

-3
推荐指数
1
解决办法
2763
查看次数

如何在此弹出窗口中删除"永不再问"字样?

如何在没有"Never ask again"文本的情况下请求权限弹出窗口?

这里是java Code,

    if 
 (intent.getAction().equals("com.finish.canceltrip.DriverMapActivity")) {
                if (!checkAccessFineLocationPermission() || !checkAccessCoarseLocationPermission() || !checkWriteExternalStoragePermission()) {
                    requestPermission();
                } else {
                    Intent i = new Intent(DriverMapActivity.this, DriverMapActivity.class);
                    i.putExtra("availability", "Yes");
                    finish();
                    startActivity(i);

                }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

android permission-denied android-permissions

-6
推荐指数
1
解决办法
1457
查看次数