标签: runtime-permissions

调用父活动的onRequestPermissionResult而不是片段

我正在尝试将新的权限模型实现到我的应用程序中.我面临一个奇怪的问题.当我和我的代码的片段请求,那么该片段的onRequestPermissionResult不叫,而不是只有父活动的onRequestPermissionResult被称为具有相同请求代码.这导致了异常行为.我正在使用v4supportFragment.我的最小api是14,最大是23.

注意:这不是嵌套片段.此外,我已经浏览了stackoverflow的这篇文章,但它没有那么有用.

从v4.Fragment请求运行时权限并将回调转到Fragment?

android android-fragments android-fragmentactivity android-permissions runtime-permissions

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

File.createNewFile()方法在Android M中抛出异常

我在Android M中创建文件时遇到问题.

我在Android 6.0.1中使用Nexus 9.然后我在我的项目中设置如下:

AndroidManifest.xml中

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

的build.gradle

android {
    defaultConfig {
        targetSdkVersion 23
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

MainActivity.Java

public class MainActivity extends AppCompatActivity {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    String storagePath = Environment.getExternalStorageDirectory().getAbsolutePath();
    String rootPath = storagePath + "/test";
    String fileName = "/test.zip";

    File root = new File(rootPath);
    if(!root.mkdirs()) {
        Log.i("Test", "This path is already exist: " + root.getAbsolutePath());
    }

    File file = new File(rootPath + fileName);
    try {
        if (!file.createNewFile()) {
            Log.i("Test", "This …
Run Code Online (Sandbox Code Playgroud)

java android file ioexception runtime-permissions

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

CheckSelfPermission始终返回权限被拒绝

在Android M(Android 6)中,我正在使用该方法ActivityCompat.checkSelfPermission().

即使我在应用程序设置中手动启用了请求的权限,此方法的结果始终是"权限被拒绝".

这可能是什么原因?

  int smsPermission = ActivityCompat.checkSelfPermission(AuthActivity.this, Manifest.permission_group.SMS);

  if (smsPermission != PackageManager.PERMISSION_GRANTED) 
  {
      dialog.setCancelable(false);
      dialog.setMessage("dialog content");
      dialog.setPositiveButton("OK", new DialogInterface.OnClickListener()
      {
          @Override
          public void onClick(DialogInterface dialogInterface, int i)
          {
             ActivityCompat.requestPermissions(AuthActivity.this, new String[]{Manifest.permission.SEND_SMS}, Constants.REQUEST_SMS_PERMISSION);
             dialogInterface.dismiss();
          }
       });
       dialog.show();
   }
Run Code Online (Sandbox Code Playgroud)

android android-6.0-marshmallow runtime-permissions

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

设置TargetSDK = 22但编译SDK = 26的优缺点是什么?

我已经阅读了几篇文章和文档以及SO问题,以了解minSDK与targetSDK和compileSDK之间的区别.

例如,在Medium上:选择compileSdkVersion,minSdkVersion和targetSdkVersion

这基本上总结了一下

minSdkVersion <= targetSdkVersion <= compileSdkVersion

但是仍然想了解如果我设置TargetSDK = 22但Compile SDK = 26有什么优缺点?

需要考虑的要点是 -

  1. 我想使用RxJava 2,Dagger 2,随最新支持库提供的Android架构组件,带有Gradle 4.1的Android Studio 3.0等.
  2. 通过将Target SDK版本设置为22以下Android M,我想避免运行时权限对话框.
  3. 应该可以在以后迁移到Kotlin.
  4. minSDK版本将继续保持15

android android-support-library android-min-sdk runtime-permissions android-architecture-components

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