我的eclipse项目的Android Marshmallow权限不起作用

问题描述 投票:0回答:4

我使用eclipse IDE创建了一个应用程序。而现在它在Marshmallow上的各种权限崩溃说联系。经过大量的搜索,我得不到任何结果。

它显示在checkSelfPermissionrequestPermissions等错误来自Manifest.permission.CONTACTS的CONTACT。

我认为这些解决方案正在开发android studio项目。所以,如果有人知道,请让我知道eclipse项目。 enter image description here

java android eclipse android-6.0-marshmallow android-permissions
4个回答
-1
投票

完整的工作演示

你错了这里没有像CONTACTS这样的许可只有READ_CONTACTSWRITE_CONTACTS

正确的是Manifest.permission.READ_CONTACTS;而不是Manifest.permission.CONTACTS;

public class MainActivity extends AppCompatActivity {

    private Context context;
    private Button button;
    private static final int REQUEST_RUNTIME_PERMISSION = 123;
    private String permission = Manifest.permission.READ_CONTACTS;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override

            public void onClick(View v) {
                if (CheckPermission(MainActivity.this, permission)) {
                    // you have permission go ahead
                    YouCanReadContactNow();
                } else {
                    // you do not have permission go request runtime permissions
                    RequestPermission(MainActivity.this, permission, REQUEST_RUNTIME_PERMISSION);
                }
            }
        });
    }

    private void YouCanReadContactNow() {
    }


    @Override
    public void onRequestPermissionsResult(int permsRequestCode, String[] permissions, int[] grantResults) {

        switch (permsRequestCode) {
            case REQUEST_RUNTIME_PERMISSION: {
                if (grantResults.length > 0
                        && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    // you have permission go ahead
                    YouCanReadContactNow();
                } else {
                    // you do not have permission show toast.
                }
                return;
            }
        }
    }

    public void RequestPermission(Activity thisActivity, String Permission, int Code) {
        if (ContextCompat.checkSelfPermission(thisActivity,
                Permission)
                != PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
                    Permission)) {
            } else {
                ActivityCompat.requestPermissions(thisActivity,
                        new String[]{Permission},
                        Code);
            }
        }
    }

    public boolean CheckPermission(Context context, String Permission) {
        if (ContextCompat.checkSelfPermission(context,
                Permission) == PackageManager.PERMISSION_GRANTED) {
            return true;
        } else {
            return false;
        }
    }
}

布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/base"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:orientation="horizontal">


    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_margin="10dp"
        android:text="Request contact permissions"
        android:textSize="20dp" />

</RelativeLayout>

0
投票

我没有找到这个许可的任何地方:Manifest.permission.CONTACTS

只有两个联系人权限:

  1. READ_CONTACTS
  2. WRITE_CONTACTS

你应该用这两个。只有联系人会给你错误。


0
投票

更新最新版本Android支持存储库qazxsw poi

并且在Android私有库中只添加了一个和最后一个版本android-support-v4.jar。

enter image description here


0
投票

除了qazxsw poi / qazxsw poi问题:为了解决Eclipse中的enter image description here,您可以将READ_CONTACTSWRITE_CONTACTS添加到Eclipse项目的checkSelfPermission() not found文件夹中,然后再次编译。

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