BEBE2011 Ответов: 1

Разрешения пользователя андроид приложение для представлений и мероприятий


Привет ,

Мне интересно, возможно ли ограничить определенные действия пользователей, например, не иметь возможности нажимать определенные кнопки и просматривать то, что они могут и не могут видеть в приложении. Пользователь сначала войдет в систему, используя свой отпечаток пальца . И исходя из их уровня безопасности, они могли просматривать/запускать только определенные вещи в приложении?

Что я уже пробовал:

Я смотрел демонстрационные защиты для сканеров отпечатков пальцев, которые разблокируют телефон, но можно ли дать или ограничить доступ к определенным действиям/фрагментам/кнопкам/диаграммам/графикам в приложении?

Richard MacCutchan

Да, это возможно в приложении, но зачем вам это нужно?

BEBE2011

Не могли бы вы указать мне правильное направление? Одно устройство будет использоваться многими разными людьми с разными уровнями безопасности в одной области.

Richard MacCutchan

Затем вам нужно будет создать базу данных со всей пользовательской информацией и уровнями безопасности. затем ваше приложение представляет данные в соответствии с уровнями безопасности пользователя, который входит в систему.

BEBE2011

Это нормально, я думал, что это нужно сделать.

BEBE2011

Кто может помешать им выполнять определенные действия в приложении?

Richard MacCutchan

Все зависит от того, что делает приложение. Возможно, вам нужно ограничить доступ к определенным записям или полям базы данных. Или разрешить только определенным пользователям обновлять базу данных или редактировать файлы. Только вы можете решить, как и что.

BEBE2011

Можете ли вы придумать какой-нибудь пример кода, где один пользователь видит кнопку, которую другой пользователь не может видеть?

Richard MacCutchan

Да, но это будет зависеть от дизайна вашего приложения. Проще всего было бы сделать некоторые элементы меню и кнопок динамическими, чтобы они появлялись только после проверки учетных данных пользователя.

BEBE2011

Спасибо за ваше руководство. Можете ли вы поделиться ссылкой на пример приложения/кода?

Richard MacCutchan

Ну, я мог бы сделать поиск в Google, но я уверен, что вы вполне способны сделать это сами.

BEBE2011

С момента моего поиска Android не позволяет проверять несколько разных отпечатков пальцев на одном устройстве. В настоящее время он работает только по одному отпечатку пальца на каждое устройство. Это все еще правда? Статьи на эту тему написаны в прошлом году.

Richard MacCutchan

Извините, я еще не работал над распознаванием отпечатков пальцев, поэтому не знаю. Вы проверили все статьи для Android здесь, на CodeProject?

1 Ответов

Рейтинг:
2

Wessel Beulink

- Да, можешь. Просто запустите помощник по отпечаткам пальцев, когда кто-то входит в запретную зону. С помощью кнопки Нажмите что-то вроде:

public void onClick(View v) {
        if (v.getId() == R.id.cancel_button) {
            finish();
        }
        if (v.getId() == R.id.learn_more_button) {
            launchFingerprintHelp();
        }
        super.onClick(v);
    }


Запуск:
private void launchFingerprintHelp() {
       Intent helpIntent = HelpUtils.getHelpIntent(this,
               getString(R.string.help_url_fingerprint), getClass().getName());
       startActivity(helpIntent);
   }


Чем закончить его с onactivity и прочитать, если доступ был успешным:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_FINISHED) {
        finish();
    } else {
        super.onActivityResult(requestCode, resultCode, data);
    }
}





Здесь у вас есть полный предварительный просмотр того, как он должен выглядеть:

package com.android.settings.fingerprint;
import android.app.admin.DevicePolicyManager;
import android.content.Intent;
import android.os.Bundle;
import android.os.UserHandle;
import android.view.View;
import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.HelpUtils;
import com.android.settings.R;
/**
 * Onboarding activity for fingerprint enrollment.
 */
public class FingerprintEnrollIntroduction extends FingerprintEnrollBase {
    private boolean mHasPassword;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fingerprint_enroll_introduction);
        setHeaderText(R.string.security_settings_fingerprint_enroll_introduction_title);
        findViewById(R.id.cancel_button).setOnClickListener(this);
        findViewById(R.id.learn_more_button).setOnClickListener(this);
        final int passwordQuality = new ChooseLockSettingsHelper(this).utils()
                .getActivePasswordQuality(UserHandle.myUserId());
        mHasPassword = passwordQuality != DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
    }
    @Override
    protected void onNextButtonClick() {
        Intent intent = new Intent();
        final String clazz;
        if (!mHasPassword) {
            // No fingerprints registered, launch into enrollment wizard.
            clazz = FingerprintEnrollOnboard.class.getName();
        } else {
            // Lock thingy is already set up, launch directly into find sensor step from wizard.
            clazz = FingerprintEnrollFindSensor.class.getName();
        }
        intent.setClassName("com.android.settings", clazz);
        startActivityForResult(intent, 0);
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_FINISHED) {
            finish();
        } else {
            super.onActivityResult(requestCode, resultCode, data);
        }
    }
    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.cancel_button) {
            finish();
        }
        if (v.getId() == R.id.learn_more_button) {
            launchFingerprintHelp();
        }
        super.onClick(v);
    }
    private void launchFingerprintHelp() {
        Intent helpIntent = HelpUtils.getHelpIntent(this,
                getString(R.string.help_url_fingerprint), getClass().getName());
        startActivity(helpIntent);
    }
}


Удачи!