Tag: android permissions

在Android 7上写入外部存储

我想在我的Android应用程序中写入外部存储,但我似乎没有得到正确的权限。 该应用程序在Android 7上运行,因此我在运行时请求权限,如下所示: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE); if (permission != PackageManager.PERMISSION_GRANTED) { // We don’t have permission so prompt the user int ACCESS_EXTERNAL_STORAGE_STATE = 1; ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, ACCESS_EXTERNAL_STORAGE_STATE); } permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE); if (permission != PackageManager.PERMISSION_GRANTED) { // We don’t […]

请求PACKAGE_USAGE_STATS的权限

我想检查用户是否已授予我的应用程序使用PACKAGE_USAGE_STATS的权限。 我目前正在做的是: // Control that the required permissions is instantiated! if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(this, Manifest.permission.PACKAGE_USAGE_STATS) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.PACKAGE_USAGE_STATS}, MULTIPLE_PERMISSION_GRANTED); } 我已经按照Android Developer部分的描述实现了requestPermissions,它对ACCESS_FINE_LOCATION工作正常。 但是,当我的应用程序请求权限时,它只显示ACCESS_FINE_LOCATION权限而不是PACKAGE_USAGE_STATS ,任何人都可以解释原因吗? 如果是这样,请解决我如何做到这一点? 我希望这两个权限都显示在这样的对话框中:

仅针对Android Marshmallow请求运行时权限?

我想为marshmallow添加运行时权限,因为它会在Android marshmallow设备中崩溃我的应用程序,否则它会正常工作。 是否可以一次添加多个权限? 我已经为相机许可编写了代码,但是 我已经编写了单一权限的代码,并且工作正常。 private void requestpermissioncamera() { final List permissionsList = new ArrayList(); if (!addPermission(permissionsList, Manifest.permission.ACCESS_FINE_CAMERA)) permissionsNeeded.add(“Camera”); requestPermissions(permissionsList.toArray(new String[permissionsList.size()]),PERMISSION_REQUEST_CODE); return; } 此function用于检查是否授予天气许可。 private boolean checkPermission(){ int result = ContextCompat.checkSelfPermission(context, Manifest.permission.CAMERA); if (result == PackageManager.PERMISSION_GRANTED){ return true; } else { return false; } }

仅在Android 6.0中没有此类文件或目录

下面的代码在Marshmallow之前的设备上工作正常但在Marshmallow中没有。 这些是Manifest中的权限 这是代码 public void saveImageToSDCard(Bitmap bitmap) { File myDir = new File( Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), pref.getGalleryName()); myDir.mkdirs(); Random generator = new Random(); int n = 10000; n = generator.nextInt(n); String fname = “Wallpaper-” + n + “.jpg”; File file = new File(myDir, fname); if (file.exists()) file.delete(); try { FileOutputStream out = new FileOutputStream(file); bitmap.compress(Bitmap.CompressFormat.JPEG, 90, […]

应用程序请求未显示

我的应用中有地图活动。 我正在尝试请求它的位置权限,但请求权限没有显示。 我不知道为什么… 这是我的完整代码: public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { private static final String FIREBASE_URL=”https://****.firebaseio.com/”; private Firebase firebaseRef; private LocationManager locationManager; private GoogleMap mMap; SupportMapFragment mapFrag; boolean bPermissionGranted; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps2); Firebase.setAndroidContext(this); firebaseRef = new Firebase(FIREBASE_URL); // Obtain the SupportMapFragment and get notified when the map is ready […]

如果我使用移动数据而不是wifi,Android无法运行

当我启动我的Android应用程序并尝试使用WiFi数据进行登录过程时,它没问题。 但是,如果我再次启动应用程序并尝试使用移动数据执行相同的过程,则该过程仍会等到我收到错误。 代码是: class AsyncLogin extends AsyncTask { String username, password; protected void onPreExecute() { pDialog = new ProgressDialog(MainActivity.this); pDialog.setMessage(“Login…”); pDialog.setIndeterminate(false); pDialog.setCancelable(false); pDialog.show(); } protected String doInBackground(String… params) { username = params[0]; password = params[1]; DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost post = new HttpPost(URI_login); post.setHeader(“content-type”, “application/json”); try { JSONObject jpost = new JSONObject(); jpost.put(“password”, […]

ActivityCompat.requestPermissions不显示提示

我正在尝试请求ACCESS_FINE_LOCATION权限以获取用户的当前位置。 我的日志记录表明我的应用程序在查询ContextCompat.checkSelfPermission()时当前没有此权限,但是当调用ActivityCompat.requestPermissions()不会显示任何内容。 我的Google地图代码(实现OnMapReadyCallback和ActivityCompat.OnRequestPermissionsResultCallback() )位于FragmentActivity 。 我已经设法让requestPermissions()函数在应用程序的其他活动中成功运行,它只是带有Google地图的那个。 放置在Activity的onCreate()方法或onMapReady() (它需要去的地方)时,它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 […]

使用android.content.Context.checkPermission检查权限时出现空指针exception

在查询Android日历以查找事件之前,我需要检查权限。 要做到这一点,Android工作室警告我需要在查询之前进行检查。 自动生成的代码就是这个: if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED) { System.out.println(“NO ACCESS TO CALENDAR!! Abort mission, abort mission!!”); } 尝试运行它时,我收到此错误: 尝试调用虚方法’int null对象引用上的android.content.Context.checkPermission(java.lang.String,int,int)’ 所以很明显,此时某些东西是空的,我试图以不同的方式获取应用程序的上下文,但它仍然是相同的错误。 我试过的其他事情是这个代码,它应该处理低于Android 6的目标: if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CALENDAR}, MY_PERMISSIONS_REQUEST_READ_CONTACTS); } 仍然得到同样的错误,任何人都可以帮助我吗?