android-permissions 相关问题

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

进入Google消息应用程序时。它显示有人可以访问您的屏幕对话框

问题:我现在需要在 Android 14 设备中使用媒体投影权限捕获屏幕。每当我进入 Google 消息应用程序时,警告对话框都会显示某人有权...

回答 1 投票 0

请求推送通知的许可

我正在开发一个应用程序,我需要使用推送通知。我知道推送通知是正常权限,因此我无法在运行时询问它。但我会在用户

回答 8 投票 0

无法将 APK 文件上传到 google play,因为它使用受限制的 API

当我尝试将 APK 文件上传到 google play 时,出现以下错误: 我找不到任何谈论此错误的消息来源。

回答 2 投票 0

Android M - 有什么方法可以知道用户是否选择不再看到授予权限对话框?

如果应用程序调用 ActivityCompat.requestPermissions(...),操作系统会显示一个带有“拒绝”和“允许”按钮的对话框。还有一个“不再显示此内容”复选框。 那个...

回答 3 投票 0

java.lang.SecurityException:权限拒绝:打开提供程序

我使用以下方式启动图像选择器意图: 最终意图 pickIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); pickIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);

回答 5 投票 0

无法在 Android 13 中从图库中选择图像,适用于较低的 Android 版本。我检查了 Android 9 和 10,它可以工作

这是我的清单文件权限。已经添加了 android 13 所需的权限代码但不起作用 这是我的清单文件权限。已经添加了 android 13 所需的权限代码但不起作用 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="29" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" /> <uses-permission android:name="com.android.vending.BILLING" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <!--<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> --> <uses-permission android:name="com.google.android.gms.permission.AD_ID"/> 我的java文件.i已经添加了必要的代码来从手机中选择图像,但不幸的是在android 13中无法工作......................................... ...................................................... ...................................................... ...................................... package com.virlabs.filmytube.ui.activities; import java.io.File; public class EditActivity extends AppCompatActivity implements ProgressRequestBody.UploadCallbacks{ private PrefManager prf; private CircleImageView image_view_edit_activity_user_profile; private TextView text_view_edit_activity_name_user; private ImageView image_view_edit_activity_name_edit_photo; private RelativeLayout relative_layout_edit_activity_save; private TextInputLayout text_input_layout_activity_edit_name; private TextInputEditText text_input_editor_text_activity_edit_name; private int id; private String name; private String image; private int PICK_IMAGE = 1557; private String imageUrl; private ProgressDialog pd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit); Bundle bundle = getIntent().getExtras() ; this.id = bundle.getInt("id"); this.name = bundle.getString("name"); this.image = bundle.getString("image"); this.prf = new PrefManager(getApplicationContext()); initView(); initAction(); setUser(); } private boolean validatName() { if (text_input_editor_text_activity_edit_name.getText().toString().trim().isEmpty() || text_input_editor_text_activity_edit_name.getText().length() < 3 ) { text_input_layout_activity_edit_name.setError(getString(R.string.error_short_value)); requestFocus(text_input_editor_text_activity_edit_name); return false; } else { text_input_layout_activity_edit_name.setErrorEnabled(false); } return true; } private void requestFocus(View view) { if (view.requestFocus()) { getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); } } private void initView() { this.image_view_edit_activity_user_profile = (CircleImageView) findViewById(R.id.image_view_edit_activity_user_profile); this.image_view_edit_activity_name_edit_photo = (ImageView) findViewById(R.id.image_view_edit_activity_name_edit_photo); this.text_view_edit_activity_name_user = (TextView) findViewById(R.id.text_view_edit_activity_name_user); this.relative_layout_edit_activity_save= (RelativeLayout) findViewById(R.id.relative_layout_edit_activity_save); this.text_input_editor_text_activity_edit_name= (TextInputEditText) findViewById(R.id.text_input_editor_text_activity_edit_name); this.text_input_layout_activity_edit_name= (TextInputLayout) findViewById(R.id.text_input_layout_activity_edit_name); pd = new ProgressDialog(EditActivity.this); pd.setMessage("Updating my user infos"); pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pd.setCancelable(false); } private void initAction() { this.relative_layout_edit_activity_save.setOnClickListener( v -> { submit(); }); this.image_view_edit_activity_name_edit_photo.setOnClickListener(v->{ SelectImage(); }); } private void submit() { if (!validatName()) return; edit(); } private void setUser() { this.text_input_editor_text_activity_edit_name.setText(name); this.text_view_edit_activity_name_user.setText(name); Picasso.get() .load(image) .error(R.drawable.placeholder_profile) .placeholder(R.drawable.placeholder_profile) .into(image_view_edit_activity_user_profile); } private void SelectImage() { if (ContextCompat.checkSelfPermission(EditActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(EditActivity.this, new String[] {Manifest.permission.READ_EXTERNAL_STORAGE }, 0); }else{ Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI); i.setType("image/*"); startActivityForResult(i, PICK_IMAGE); } } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case 0: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { SelectImage(); } return; } } } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == PICK_IMAGE && resultCode == RESULT_OK && null != data) { Uri selectedImage = data.getData(); String[] filePathColumn = {MediaStore.Video.Media.DATA}; Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String picturePath = cursor.getString(columnIndex); cursor.close(); imageUrl = picturePath ; File file = new File(imageUrl); Picasso.get() .load(file) .error(R.drawable.placeholder_profile) .placeholder(R.drawable.placeholder_profile) .into(image_view_edit_activity_user_profile); } else { Log.i("SonaSys", "resultCode: " + resultCode); switch (resultCode) { case 0: Log.i("SonaSys", "User cancelled"); break; case -1: break; } } } public void edit() { pd.show(); PrefManager prf = new PrefManager(getApplicationContext()); Retrofit retrofit = apiClient.getClient(); apiRest service = retrofit.create(apiRest.class); MultipartBody.Part body = null; if (imageUrl != null){ File file1 = new File(imageUrl); int file_size = Integer.parseInt(String.valueOf(file1.length() / 1024 / 1024)); if (file_size > 20) { Toasty.error(getApplicationContext(), "Max file size allowed 20M", Toast.LENGTH_LONG).show(); } Log.v("SIZE", file1.getName() + ""); final File file = new File(imageUrl); ProgressRequestBody requestFile = new ProgressRequestBody(file, EditActivity.this); body = MultipartBody.Part.createFormData("uploaded_file", file.getName(), requestFile); } String id_ser= prf.getString("ID_USER"); String key_ser= prf.getString("TOKEN_USER"); Call<ApiResponse> request = service.editProfile(body, Integer.parseInt(id_ser), key_ser, text_input_editor_text_activity_edit_name.getText().toString().trim()); request.enqueue(new Callback<ApiResponse>() { @Override public void onResponse(Call<ApiResponse> call, Response<ApiResponse> response) { if (response.isSuccessful()){ Toasty.success(getApplication(),getResources().getString(R.string.infos_updated_successfully),Toast.LENGTH_LONG).show(); for (int i=0;i<response.body().getValues().size();i++) { if (response.body().getValues().get(i).getName().equals("name")) { String Newname = response.body().getValues().get(i).getValue(); if (Newname != null) { if (!Newname.isEmpty()) { prf.setString("NAME_USER",Newname); } } } if (response.body().getValues().get(i).getName().equals("url")) { String NewImage = response.body().getValues().get(i).getValue(); if (NewImage != null) { if (!NewImage.isEmpty()) { prf.setString("IMAGE_USER",NewImage); } } } } finish(); }else{ Toasty.error(getApplication(),getResources().getString(R.string.error_server),Toast.LENGTH_LONG).show(); } pd.dismiss(); pd.cancel(); } @Override public void onFailure(Call<ApiResponse> call, Throwable t) { Toasty.error(getApplication(),getResources().getString(R.string.error_server),Toast.LENGTH_LONG).show(); pd.dismiss(); pd.cancel(); } }); } @Override public void onProgressUpdate(int percentage) { pd.setProgress(percentage); } @Override public void onError() { pd.dismiss(); pd.cancel(); } @Override public void onFinish() { pd.dismiss(); pd.cancel(); } } 试试这个代码 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> public Uri uri = null; private static final int PICK_IMAGE_REQUEST = 1, PICK_VIDEO_REQUEST = 2; private void selectImage() { final CharSequence[] options = {"Photos", "Videos", "Cancel"}; AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("Choose Photo/Video"); builder.setItems(options, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int item) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { if (options[item].equals("Photos")) { if (ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.READ_MEDIA_IMAGES) == PackageManager.PERMISSION_GRANTED) { Intent photos = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(photos, PICK_IMAGE_REQUEST); } else if ((ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, android.Manifest.permission.READ_MEDIA_IMAGES))) { Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri = Uri.fromParts("package", getPackageName(), null); intent.setData(uri); startActivity(intent); Toast.makeText(MainActivity.this, "Image permission required", Toast.LENGTH_SHORT).show(); } else { ActivityCompat.requestPermissions(MainActivity.this, new String[]{android.Manifest.permission.READ_MEDIA_IMAGES}, PICK_IMAGE_REQUEST); } } else if (options[item].equals("Videos")) { if (ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.READ_MEDIA_VIDEO) == PackageManager.PERMISSION_GRANTED) { Intent video = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI); startActivityForResult(video, PICK_VIDEO_REQUEST); } else if ((ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, android.Manifest.permission.READ_MEDIA_VIDEO))) { Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri = Uri.fromParts("package", getPackageName(), null); intent.setData(uri); startActivity(intent); Toast.makeText(MainActivity.this, "Video permission required", Toast.LENGTH_SHORT).show(); } else { ActivityCompat.requestPermissions(MainActivity.this, new String[]{android.Manifest.permission.READ_MEDIA_VIDEO}, PICK_VIDEO_REQUEST); } } else if (options[item].equals("Cancel")) { dialog.dismiss(); } } else { if (options[item].equals("Photos")) { if (ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { Intent photos = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(photos, PICK_IMAGE_REQUEST); } else if ((ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, android.Manifest.permission.READ_EXTERNAL_STORAGE))) { Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri = Uri.fromParts("package", getPackageName(), null); intent.setData(uri); startActivity(intent); Toast.makeText(MainActivity.this, "Gallery Permission required", Toast.LENGTH_SHORT).show(); } else { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PICK_IMAGE_REQUEST); } } else if (options[item].equals("Videos")) { if (ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { Intent video = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI); startActivityForResult(video, PICK_VIDEO_REQUEST); } else if ((ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, android.Manifest.permission.READ_EXTERNAL_STORAGE))) { Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri = Uri.fromParts("package", getPackageName(), null); intent.setData(uri); startActivity(intent); Toast.makeText(MainActivity.this, "Gallery Permission required", Toast.LENGTH_SHORT).show(); } else { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PICK_VIDEO_REQUEST); } } else if (options[item].equals("Cancel")) { dialog.dismiss(); } } } }); builder.show(); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == PICK_IMAGE_REQUEST) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { Intent photos = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(photos, PICK_IMAGE_REQUEST); Toast.makeText(MainActivity.this, "Image Permission Granted", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "Image Permission Denied", Toast.LENGTH_SHORT).show(); } } else if (requestCode == PICK_VIDEO_REQUEST) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { Intent video = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI); startActivityForResult(video, PICK_VIDEO_REQUEST); Toast.makeText(MainActivity.this, "Video Permission Granted", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "Video Permission Denied", Toast.LENGTH_SHORT).show(); } } } protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK && requestCode == PICK_IMAGE_REQUEST) { assert data != null; // get selected Image Uri; uri = data.getData(); } else if (resultCode == RESULT_OK && requestCode == PICK_VIDEO_REQUEST) { assert data != null; // get selected Image Uri; uri = data.getData(); } } 我使用此代码。但是当我单击图像选取按钮时显示权限被拒绝错误 public class EditActivity extends AppCompatActivity implements ProgressRequestBody.UploadCallbacks { private PrefManager prf; private CircleImageView image_view_edit_activity_user_profile; private TextView text_view_edit_activity_name_user; private ImageView image_view_edit_activity_name_edit_photo; private RelativeLayout relative_layout_edit_activity_save; private TextInputLayout text_input_layout_activity_edit_name; private TextInputEditText text_input_editor_text_activity_edit_name; private int id; private String name; private String image; private int PICK_IMAGE = 1557; private String imageUrl; private ProgressDialog pd; private final ActivityResultLauncher<String> requestPermissionLauncher = registerForActivityResult(new ActivityResultContracts.RequestPermission(), isGranted -> { if (isGranted) { // Permission has been granted, proceed with image selection Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); i.setType("image/*"); startActivityForResult(i, PICK_IMAGE); } else { // Permission denied, show a message or handle accordingly Toast.makeText(EditActivity.this, "Permission denied", Toast.LENGTH_SHORT).show(); } }); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit); Bundle bundle = getIntent().getExtras(); this.id = bundle.getInt("id"); this.name = bundle.getString("name"); this.image = bundle.getString("image"); this.prf = new PrefManager(getApplicationContext()); initView(); initAction(); setUser(); } private boolean validateName() { if (text_input_editor_text_activity_edit_name.getText().toString().trim().isEmpty() || text_input_editor_text_activity_edit_name.getText().length() < 3) { text_input_layout_activity_edit_name.setError(getString(R.string.error_short_value)); requestFocus(text_input_editor_text_activity_edit_name); return false; } else { text_input_layout_activity_edit_name.setErrorEnabled(false); } return true; } private void requestFocus(View view) { if (view.requestFocus()) { getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); } } private void initView() { this.image_view_edit_activity_user_profile = findViewById(R.id.image_view_edit_activity_user_profile); this.image_view_edit_activity_name_edit_photo = findViewById(R.id.image_view_edit_activity_name_edit_photo); this.text_view_edit_activity_name_user = findViewById(R.id.text_view_edit_activity_name_user); this.relative_layout_edit_activity_save = findViewById(R.id.relative_layout_edit_activity_save); this.text_input_editor_text_activity_edit_name = findViewById(R.id.text_input_editor_text_activity_edit_name); this.text_input_layout_activity_edit_name = findViewById(R.id.text_input_layout_activity_edit_name); pd = new ProgressDialog(EditActivity.this); pd.setMessage("Updating my user infos"); pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pd.setCancelable(false); } private void initAction() { this.relative_layout_edit_activity_save.setOnClickListener(v -> { submit(); }); this.image_view_edit_activity_name_edit_photo.setOnClickListener(v -> { if (ContextCompat.checkSelfPermission(EditActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { requestPermissionLauncher.launch(Manifest.permission.READ_EXTERNAL_STORAGE); } else { SelectImage(); } }); } private void submit() { if (!validateName()) return; edit(); } private void setUser() { this.text_input_editor_text_activity_edit_name.setText(name); this.text_view_edit_activity_name_user.setText(name); Picasso.get() .load(image) .error(R.drawable.placeholder_profile) .placeholder(R.drawable.placeholder_profile) .into(image_view_edit_activity_user_profile); } private void SelectImage() { if (ContextCompat.checkSelfPermission(EditActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { requestPermissionLauncher.launch(Manifest.permission.READ_EXTERNAL_STORAGE); } else { Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); i.setType("image/*"); startActivityForResult(i, PICK_IMAGE); } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == PICK_IMAGE) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { SelectImage(); } } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == PICK_IMAGE && resultCode == RESULT_OK && data != null) { Uri selectedImage = data.getData(); String[] filePathColumn = {MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); if (cursor != null) { cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String picturePath = cursor.getString(columnIndex); cursor.close(); imageUrl = picturePath; File file = new File(imageUrl); Picasso.get() .load(file) .error(R.drawable.placeholder_profile) .placeholder(R.drawable.placeholder_profile) .into(image_view_edit_activity_user_profile); } } } public void edit() { pd.show(); PrefManager prf = new PrefManager(getApplicationContext()); Retrofit retrofit = apiClient.getClient(); apiRest service = retrofit.create(apiRest.class); MultipartBody.Part body = null; if (imageUrl != null) { File file1 = new File(imageUrl); int file_size = Integer.parseInt(String.valueOf(file1.length() / 1024 / 1024)); if (file_size > 20) { Toasty.error(getApplicationContext(), "Max file size allowed 20M", Toast.LENGTH_LONG).show(); } final File file = new File(imageUrl); ProgressRequestBody requestFile = new ProgressRequestBody(file, EditActivity.this); body = MultipartBody.Part.createFormData("uploaded_file", file.getName(), requestFile); } String id_ser = prf.getString("ID_USER"); String key_ser = prf.getString("TOKEN_USER"); Call<ApiResponse> request = service.editProfile(body, Integer.parseInt(id_ser), key_ser, text_input_editor_text_activity_edit_name.getText().toString().trim()); request.enqueue(new Callback<ApiResponse>() { @Override public void onResponse(Call<ApiResponse> call, Response<ApiResponse> response) { if (response.isSuccessful()) { Toasty.success(getApplication(), getResources().getString(R.string.infos_updated_successfully), Toast.LENGTH_LONG).show(); for (int i = 0; i < response.body().getValues().size(); i++) { if (response.body().getValues().get(i).getName().equals("name")) { String Newname = response.body().getValues().get(i).getValue(); if (Newname != null && !Newname.isEmpty()) { prf.setString("NAME_USER", Newname); } } if (response.body().getValues().get(i).getName().equals("url")) { String NewImage = response.body().getValues().get(i).getValue(); if (NewImage != null && !NewImage.isEmpty()) { prf.setString("IMAGE_USER", NewImage); } } } finish(); } else { Toasty.error(getApplication(), getResources().getString(R.string.error_server), Toast.LENGTH_LONG).show(); } pd.dismiss(); } @Override public void onFailure(Call<ApiResponse> call, Throwable t) { Toasty.error(getApplication(), getResources().getString(R.string.error_server), Toast.LENGTH_LONG).show(); pd.dismiss(); } }); } @Override public void onProgressUpdate(int percentage) { pd.setProgress(percentage); } @Override public void onError() { pd.dismiss(); } @Override public void onFinish() { pd.dismiss(); } }

回答 2 投票 0

将“PACKAGE_USAGE_STATS”权限设置为“已授予”并不会在手机上授予该权限,为什么此权限不会像其他权限一样自动授予?

我们在 .NET Core 中遇到 Android Enterprise API 问题。我们面临的问题是,当调用管理API或企业API来检索有关私有信息时...

回答 1 投票 0

请求采取行动 - 在 7 月 20 日之前提交 QUERY_ALL_PACKAGES 权限声明

这是我从 Google Play 收到的电子邮件。我向清单文件添加了 QUERY ALL PACKAGES 权限,以便所有功能都能在 Android 11 或更高版本中正常运行。但实际上,我...

回答 2 投票 0

Android 应用程序拒绝 - 您的应用程序不符合 Google Play 政策

发现问题:许可表无效或不准确 您的应用程序使用敏感权限,需要正确提交权限声明表。请检查您是否准确无误

回答 2 投票 0

我想访问 Android 13 及以上版本的内部存储中的地图文件

我正在开发一个地图应用程序,该应用程序的地图文件不在其资产或原始文件中,而是在用户手机上,例如country.map,那么我如何通过授予正确的权限Media.IMAGES或Media.A来访问...

回答 1 投票 0

Java 中已弃用 RequestPermissions

我有一个在片段中调用的函数,该函数打开一个 AlertDialog 并要求拍照或从手机拍照 。 在调用两个单独的函数 presentFiles() 或

回答 1 投票 0

我无法获得存储以xamarin形式读写的权限

我的应用程序我正在尝试获取读取和写入的存储权限。我使用下面的代码来解决问题,但我无法获得权限弹出窗口,并且我总是获得 Xamarin.Essentials。

回答 1 投票 0

在清单中找不到以下权限:[]22 - Flutter

我正在尝试从用户那里获取存储权限。以下是示例(复制粘贴)代码。但是当我尝试请求许可时出现错误。 D/permissions_handler(12775): 没有权限...

回答 6 投票 0

应用程序请求位置访问时出现的弹出窗口

我的应用程序的位置权限弹出窗口是这样的: 我需要这样的(在网上找到的): 我正在 flutter 中完成我的项目,所以我需要做哪些修改才能像第二张图片中那样弹出。 所以我很经验...

回答 3 投票 0

Expo SDK 50 更新添加了 android.permission.FOREGROUND_SERVICE_LOCATION

我有一个 Expo 管理的 React Native 应用程序。最近我将Expo SDK版本从48更新到了50。 现在,当我尝试在 Play 商店上传新的 Android 版本时,我收到以下消息。这是...

回答 1 投票 0

WhatsApp 可以在未经许可的情况下访问短信

我尚未在运行 EMUI9 的设备 HonorView10 上向 WhatsApp 授予短信权限。最近我更改了 WhatsApp 注册的号码,它会将验证码发送到新号码(...

回答 4 投票 0

在android 14中为设备写入权限

在android 14中WRITE_EXTERNAL_STORAGE权限不起作用,那么可以使用什么来代替该权限?

回答 1 投票 0

Android 12蓝牙权限混乱

所以在 API 31 中有新的蓝牙权限。我想使用以下命令打开或关闭蓝牙: 私有无效changeBluetoothState(布尔状态){ 蓝牙适配器 mBluetoothAdapter =

回答 5 投票 0

google play 说我正在请求位置许可(我没有)

(问题解决了) 你好谷歌没有发布我的应用程序用于后台位置访问 目前我仅对当前位置使用这些权限,并且不使用后台位置权限...

回答 3 投票 0

Android AOSP13 汽车模拟器在 CAR_VENDOR_EXTENSION 权限请求(priv-app)后进入引导循环

在名为 VehiclePropertyTest 的供应商应用程序请求 CAR_VENDOR_EXTENSION 权限后,我的 Android AOSP 13 汽车模拟器 (sdk_car_x86_64-userdebug) 陷入引导循环。发现...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.