Firstly, a device should be backward compatible (though this is not a blanket statement) Android 6.0 APIs to run the app with a lower SDK. You need to ensure you have the SDK 22 installed in your ide.
The other is there are extra issues regarding permissions for android 6.
See here:
Requesting Permissions at Run Time
And the example taken from there Check For Permissions:
// Assume thisActivity is the current activity
int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,
    Manifest.permission.WRITE_CALENDAR);
And then Request the permissions you need:
// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
            Manifest.permission.READ_CONTACTS)
    != PackageManager.PERMISSION_GRANTED) {
    // Should we show an explanation?
    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
        Manifest.permission.READ_CONTACTS)) {
    // Show an expanation to the user *asynchronously* -- don't block
    // this thread waiting for the user's response! After the user
    // sees the explanation, try again to request the permission.
    } else {
    // No explanation needed, we can request the permission.
    ActivityCompat.requestPermissions(thisActivity,
            new String[]{Manifest.permission.READ_CONTACTS},
            MY_PERMISSIONS_REQUEST_READ_CONTACTS);
    // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
    // app-defined int constant. The callback method gets the
    // result of the request.
    }
}
This answer contains a more comprehensive explanation.
https://stackoverflow.com/a/32084038/3956566