天道酬勤,学无止境

android-permissions

错误:不兼容的类型:int 无法转换为 String(error: incompatible types: int cannot be converted to String)

问题 在下面的代码中,它显示了错误 ActivityCompat.requestPermissions(this, new String [] {Manifest.permission.SEND_SMS, PackageManager.PERMISSION_GRANTED}); 和 ActivityCompat.requestPermissions(this, new String [] {Manifest.permission.INTERNET, PackageManager.PERMISSION_GRANTED}); package com.example.myapplication; import androidx.core.app.ActivityCompat; import androidx.fragment.app.FragmentActivity; import android.Manifest; import android.content.pm.PackageManager; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle

2021-12-05 09:16:52    分类:技术分享    java   android   android-permissions

违反 google play 中的权限政策(Violation of the Permissions policy in google play)

问题 我们的应用程序目前因拥有 SMS 权限而从 google play 中删除。 我们已经移除了权限并上传了一个新的 apk,但项目的状态仍然被移除。 我们是否必须等待他们审核,或者是否需要其他任何必要的步骤/行动才能让项目重新回到 Google Play? 回答1 填写谷歌文档以获得许可。 确保您的 SMS 权限在清单中提供,并在用户级别提供弹出窗口。 尽快联系谷歌开发者。 看到这个 回答2 可能是您在项目中使用的任何3rd 方库已经在使用这些权限。 当您构建项目时,它会将所有AndroidManifest文件合并到一个合并的清单文件中。 这就是您收到此警告的原因,因为您的最终清单具有任何这些权限。 解决方案 1:构建项目后, 打开项目的AndroidManifest文件。 打开底部的合并清单选项卡。 搜索任何这些权限。 (示例- READ_SMS ) 如果你得到任何东西,现在是时候删除它们了。 检查示例 示例:如果您在合并清单文件中看到READ_SMS权限,那么现在打开您项目的AndroidManifest文件并添加下面写入的行以从您的项目中删除该权限- <uses-permission android:name="android.permission.READ_SMS" tools:node="remove" /> 在你的AndroidManifest文件中添加上面的权限行

2021-12-05 00:29:35    分类:技术分享    android   google-play   android-manifest   manifest   android-permissions

Xamarin WebView 上的摄像头(Camera on Xamarin WebView)

问题 我有一个简单的 Xamarin 页面,带有一个调用 WebRTC 测试页面的 WebView: _webView = new WebView { Source = "https://test.webrtc.org/", WidthRequest = 1000, HeightRequest = 1000 }; var stackLayout = new StackLayout() { Orientation = StackOrientation.Vertical, Padding = new Thickness(5, 20, 5, 10), Children = { _webView } }; Content = new StackLayout { Children = { stackLayout } }; https://test.webrtc.org/ 页面在同一个 Android Emulator 上的 Chrome 上运行良好,但不能在 WebView 上运行并显示“NotAllowedError”。 该应用程序具有所需的权限。 以下代码(使用 Plugin.Permissions)返回 true: var statusCamera = await CrossPermissions.Current.CheckPermissionStatusAsync

2021-12-03 10:17:23    分类:技术分享    android   xamarin   webview   webrtc   android-permissions

要求用户打开位置(Ask user to turn on Location)

问题 如何提示用户打开Location ? 该应用程序应该使用用户的当前位置过滤位置列表。 如果用户关闭了定位服务,应用程序应提示用户要求的位置将被开启。 例如, Trip Advisor应用程序执行以下操作: (不确定我是否可以在这里发布其他应用程序的屏幕截图,但如果我不应该这样做,请说出来。并为全尺寸图像道歉,试图将它们缩小,但 SO 不喜欢它... ) 在第一张图片中,您可以看到我关闭了定位服务。 在打开Trip Advisor应用程序并点击Near me now选项后,系统会提示我使用第二张图片,其中要求我打开定位服务。 点击按钮后,会出现一个对话框,以便我可以允许或禁止打开定位服务。 如果我点击OK ,则设备上的位置服务已打开,并且应用程序会使用它。 我怎样才能做到这一点? 回答1 找到了我要求的解决方案。 要求 Nuget Xamarin.GooglePlayServices.Location 代码 Int64 interval = 1000 * 60 * 1, fastestInterval = 1000 * 50; try { GoogleApiClient googleApiClient = new GoogleApiClient.Builder( this ) .AddApi( LocationServices.API ) .Build()

2021-12-01 11:02:44    分类:技术分享    android   xamarin   xamarin.android   android-permissions   android-location

权限被拒绝:打开未从 uid 导出的提供程序 com.google.android.apps.photos.contentprovider.MediaContentProvider(Permission denied : opening provider com.google.android.apps.photos.contentprovider.MediaContentProvider that is not exported from uid)

问题 当我尝试访问先前存储在 SharedPreferences 中的照片 URI 时,我的应用程序仅在 android >= 6.0(棉花糖)中崩溃。 虽然第一次检索图像没有任何错误。 我正在使用targetSdkVersion 22,因此我不需要在 API >=23 中处理运行时权限。 我的清单文件中的权限 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.READ_SMS" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses

2021-12-01 00:10:03    分类:技术分享    android   android-contentprovider   android-permissions   android-gallery

如何默认启用屏幕覆盖权限(How to enable screen overlay permission by default)

问题 如何在安装应用程序时默认启用屏幕覆盖权限。 现在我面临一些问题,当捕获图像询问运行时权限时,某些设备不允许它打开屏幕覆盖设置对话框的权限。 从用户的角度来看,他们不知道为什么显示对话框以及他们做了什么。 当打开覆盖设置屏幕时,某些应用程序会自动启用屏幕覆盖权限。 下面我使用代码。 if (!Settings.canDrawOverlays(this)) { Intent myIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); startActivityForResult(myIntent, 101); } 此代码直接打开叠加设置屏幕。 他们的所有应用程序的显示列表。 我的要求是在没有用户交互的情况下显示特定于权限的应用程序或启用覆盖权限。 做需要... 回答1 如文档中所述,将您的包名称发送到 Intent 中。 Input:可选地,Intent 的数据 URI 可以指定应用程序包名称以直接调用特定于包名称的管理 GUI。 例如“包:com.my.app”。 所以,做这样的事情: if (!Settings.canDrawOverlays(this)) { int REQUEST_CODE = 101; Intent myIntent = new Intent(Settings.ACTION

2021-11-30 23:56:47    分类:技术分享    android   android-permissions

在 WebView [Android Studio] [Java] 中允许麦克风访问(权限)(Allowing microphone access(permission) in WebView [Android Studio] [Java])

问题 我目前正在使用 html5 和 webview 来显示“应用程序”的音乐调谐器。 我已经写了清单中所需的所有权限,我认为对于 webview 还需要另一个权限。 我现在使用这个 https://jbergknoff.github.io/guitar-tuner/ 作为示例重定向页面 这是我的 manifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.raynordev.projectrosin"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MICROPHONE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-feature android:name=

2021-11-30 23:43:00    分类:技术分享    java   android   android-studio   webview   android-permissions

Android M 权限关闭我的应用(Android M permissions close my app)

问题 我在登录屏幕上检查所需的权限。 该对话框显示要求我需要的 4 个权限。 一切都很好,但是当对话框出现时,背景变成黑色并且我的应用程序关闭(不会崩溃,只是关闭)。 完成选择权限后,我再次打开该应用程序,它会从停止的地方继续运行。 如何在显示权限对话框时让应用程序继续运行? 我使用一个类来检查权限并在登录活动中调用它。 班上: public abstract class RuntimePermissionsActivity extends AppCompatActivity { private SparseIntArray mErrorString; @Override protected void onCreate(@Nullable Bundle savedInstanceState){ super.onCreate(savedInstanceState); mErrorString = new SparseIntArray(); } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults){ super.onRequestPermissionsResult(requestCode, permissions

2021-11-30 14:57:41    分类:技术分享    android   android-6.0-marshmallow   android-permissions

等待用户许可(Wait for user permission)

问题 我构建了一个在启动时对 GPS 进行采样的应用程序。 您可能知道,Android M 及更高版本在运行时会请求权限。 因此,就我而言,我首先检查是否需要权限,如下所示: private void permissionForAndroidM() { if (Build.VERSION.SDK_INT > 22) { String[] allPermissionNeeded = { Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO}; List<String> permissionNeeded = new ArrayList<>(); for (String permission : allPermissionNeeded) if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) permissionNeeded.add(permission); if

2021-11-30 11:54:51    分类:技术分享    android   android-permissions

是否可以检查另一个应用程序是否已被授予在 Android 6.0+ 上的权限? [复制](Is it possible to check if another app has been granted a permission on Android 6.0+? [duplicate])

问题 这个问题在这里已经有了答案: 如何检查从权限中授予的其他应用程序 [关闭] (1 个回答) 7 个月前关闭。 我想检查另一个应用程序是否已被授予“危险”或“系统”级别的权限。 我尝试加载另一个应用程序的上下文并调用 packageContext.checkCallingPermission(permission)。 但是,文档说它返回 PERMISSION_GRANTED 如果调用 pid/uid 允许该权限,或者 PERMISSION_DENIED 如果不允许。 是否可以检查另一个应用程序是否已被授予权限? 这是我的尝试(我在意识到它检查调用 pid/uid 并且似乎没有考虑上下文之前写了它): void checkAllGrantedPermissions(Context context) { PackageManager pm = context.getPackageManager(); // get all installed apps with info about what permissions they requested. List<PackageInfo> packageInfos = pm.getInstalledPackages(PackageManager.GET_PERMISSIONS); // Get the hidden method

2021-11-30 07:39:59    分类:技术分享    android   android-6.0-marshmallow   android-permissions