- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试请求 ACCESS_FINE_LOCATION
权限以获取用户的当前位置。
我的日志记录表明我的应用在查询 ContextCompat.checkSelfPermission()
时目前没有此权限,但在调用 ActivityCompat.requestPermissions()
时没有显示任何内容。
我的 Google map 代码(实现 OnMapReadyCallback
和 ActivityCompat.OnRequestPermissionsResultCallback()
)在 FragmentActivity
中。
我已经设法让 requestPermissions()
函数在应用程序的其他 Activity 中成功运行,它只是带有 Google map 的那个。当放置在 Activity
的 onCreate()
方法或 onMapReady()
中(它需要去的地方)时,它不起作用.
if(ContextCompat.checkSelfPermission(LocationActivity.this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
Log.d(TAG, "not granted");
final String[] permissions = new String[] {android.Manifest.permission.ACCESS_FINE_LOCATION};
if(ActivityCompat.shouldShowRequestPermissionRationale(this, android.Manifest.permission.ACCESS_FINE_LOCATION)) {
Log.d(TAG, "rationale");
// Explain to the user why permission is required, then request again
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("We need permissions")
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
ActivityCompat.requestPermissions(LocationActivity.this, permissions, 1);
}
});
AlertDialog alert = builder.create();
alert.show();
} else {
Log.d(TAG, "request" + android.Manifest.permission.ACCESS_FINE_LOCATION);
// If permission has not been denied before, request the permission
ActivityCompat.requestPermissions(LocationActivity.this, permissions, 1);
}
} else {
Log.d(TAG, "granted");
}
有什么想法吗?是否与我的 Activity 类 (FragmentActivity
) 有关,或者可能是 Google map 异步调用权限请求?
最佳答案
在完全剥离我的类之后,它仍然无法正常工作,我意识到这个 Activity 是使用 TabHost 实例化的。
当我停止使用TabHost时,提示成功。我猜想新的权限提示不支持 TabHosts - 这是一个错误吗?
与 App requests aren't showing up 相同的问题
我最终创建了一个 PermissionsRequestActivity,它代表我的 TabHost 处理权限请求和响应,然后退出(通过 Intent extras Bundle 传递请求的权限信息)。
它将对请求的响应作为广播传回,由我的 TabHost 接收。
有点乱,但工作正常!
关于java - ActivityCompat.requestPermissions 不显示提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37140519/
当我的Activity来电ActivityCompat.requestPermissions ,不出现 UI 对话框。 ActivityCompat.requestPermissions(HomeAc
无法解析符号“ActivityCompat”我正在尝试通过我的应用程序发送短信。我还在 AndroidManifest.xml 上添加了使用权限 ActivityCompat 无法解析,请帮帮我。 编
我正在使用 Google API 开发面部识别应用程序。但 android studio 说找不到符号。 这是我的 Activity 。这四个都不起作用。 import android.support
在 AndroidManifest.xml 中: 在 PreActivity.java 中 if (PermissionChecker.checkSelfPermission(preActivit
我正在尝试请求 ACCESS_FINE_LOCATION 权限以获取用户的当前位置。 我的日志记录表明我的应用在查询 ContextCompat.checkSelfPermission() 时目前没有
调用 ActivityCompat.requestPermissions 不显示 UI 对话框。 ActivityCompat.requestPermissions(MainActivity.this
在我的 react-native 应用程序中,我需要获得用户的位置许可,因此我将其添加到其中一个 Activity 类中... public void onCreate() { Activit
if (ContextCompat.checkSelfPermission(RegisterActivity.this, Manifest.permission.READ_PHONE_STA
我是 android 的新手,正在学习如何实现基于位置的服务,我遇到了以下错误 - Cannot resolve symbol 'ActivityCompat' in line 'import and
这是一段代码,用于请求访问设备中精确位置的权限。 if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_
我想为下一个 Activity 添加一个进入过渡。 所以我做了: getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS); wi
我正在尝试使用 Android 相机,对于 API 23 或更高版本,它需要在运行时请求许可。根据documentation ,我可以使用 ActivityCompat 或 ContextCompat
这是我添加“simple_permissions”软件包时看到的错误。我怎样才能解决这个问题?我最近升级了flutter,在升级之前,它曾经工作得很好。 /root/flutter/.pub-cach
Android 手机版本:6.0.1 (Android marshmallow) Android 目标 SDK 版本 25 我在 Android 按钮中调用 ActivityCompat.reques
运行时权限对话框在 Android 6.0 或更高版本中显示,因此在 API 级别 23 中添加的 Activity.requestPermissions(...) 是有意义的。 但是为什么还有一个(
我有以下权限: private static final String[] LOCATION_PERMISSIONS = { Manifest.permission.ACCES
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.READ_CONTACTS)
我正在调用 ActivityCompat.requestPermissions 以获得 android M 下的权限,但是,这需要参数中的 Activity 。这很好,除了我想从单例调用它,并且单例可
我正尝试在我的智能 watch 上使用 ViewPager,但在尝试重建/运行/调试我的应用程序时,我一直收到错误消息。我正在使用 FragmentActivity,这是发生错误的地方。我搜索了 st
我在 ionic 中开始了一个新项目。只安装 qrscenner 插件。运行命令后ionic cap build android运行成功。然后我在 Android Studio 中运行应用程序,得到错
我是一名优秀的程序员,十分优秀!