Entendendo seu usuário com Intel Context Sensing

Entendendo seu usuário com Intel Context Sensing

Palestra ministrada na edição 2015 do Intel Software Day (Salvador) e na edição #27 do Android Meetup em São Paulo

D4b7a3e2ed10f86e0b52498713ba2601?s=128

Ubiratan Soares

June 12, 2015
Tweet

Transcript

  1. 3.

    MOTIVAÇÃO Em um cenário no qual o entendimento de cada

    usuário singular é cada vez mais importante, como obter dados de contexto e executar ações de forma automatizada ?
  2. 4.

    INTEL CONTEXT SENSING Framework de alto nível no topo da

    API do Android para obtenção de dados contextuais do usuário, bem como aprendizado e ações com base nesse contexto
  3. 6.

    CONTEXT HISTORY Dados armazenados localmente no aparelho, com possibilidade de

    sincronização na nuvem, que podem ser capturados pelos mais diversos meios e utilizados para aprendizado do usuário posteriormente
  4. 8.

    CONTEXT STATES Dados obtidos em um determinado instante, e que

    apenas fazem sentido se consumidos em um curto período de tempo. Esses estados podem ser “sentidos" pela aplicação, que será notificada periodicamente sobre alterações nesse contexto
  5. 9.

    BUILT-IN CONTEXT STATES Activity Recogition Audio Classification Pedometer Location Installed

    Applications Running Applications Battery Calendar Call Contacts Device Information Music Network Information Device Position Motion Detectors …
  6. 10.
  7. 11.

    CONTEXT STATE DETAILS Item Identifider ContextType.AUDIO State Information Audio Classification

    (Speech, Motion, Mechanical, Music) Probability Sensing Settings Mode (Fast, Every Minute, OnChange) Continuous Flag (Pause / Dont Pause on Sleep) Android Permissions android.permission.RECORD_AUDIO intel.aware.permission.ACCESS_AWARESERVICE Cloud Services Scopes context:device:sensor (to read from cloud services) context:post:device:sensor (to push to cloud services)
  8. 12.

    MAIS SOBRE CONTEXT STATES Existem vários estados de contexto que

    são cloud-powered (ex. condições do tempo) É possível criar estados de contexto customizados e consumí-los Aparelhos Intel são capazes de agregar mais informação para determinados contextos
  9. 13.

    RULES ENGINE Motor de regras para avaliar dados de acordo

    com o contexto, disparando ações de acordo com o resultado do avaliação
  10. 14.

    “Quando eu estou dirigindo, e eu perdi uma ligação, enviar

    um SMS dizendo que eu ligo depois” Rules Engine
  11. 15.

    RuleManager ruleManager = new RuleManager(); ruleManager.setOperationMode(RULE_OPERATION_MODE.FAST); List<IRuleAction> onTrueActionsList = new

    ArrayList<IRuleAction>(); onTrueActionsList.add(new IRuleAction() { public void execute(Context context) { Log.i("Info", "You made 30 steps!"); }}); String ruleName = "stepsAdvice"; String ruleDescription = "Advice me when I do 30 or more steps."; String condition = "Pedometer.steps >= 30"; Rule rule = new Rule(ruleName, ruleDescription, condition, onTrueActionsList, null); rule.activate();
  12. 16.

    RULES LEARNER Motor de inferência para aprender novas regras a

    partir de estados de contexto : machine learning on-device
  13. 18.

    RuleLearner ruleLearner = new RuleLearner( "My Learned Rule”, "When the

    WiFi status changes, is because [?] happens.", new FullLikelyHood( 0.33f, 10, Action.WifiChange, Arrays.asList("Place.type", “Date.partOfWeek")) ); ruleManager.setOperationMode(RULE_OPERATION_MODE.FAST);
  14. 19.

    ruleLearner.start(); List<SuggestedRule> suggestedRules = ruleLearner.getSuggestedRules(); if (suggestedRules.size() == 0) {

    Log.i("APP", "No suggested rules yet..."); } else { for (SuggestedRule rule : suggestedRules) { StringBuilder sb = new StringBuilder(); sb.append("Action Value: " + rule.getActionValue()); for (Entry<String, String> e : rule.getConditionValues().entrySet()) { sb.append("\n> When: " + e.getKey() + " --> " + e.getValue()); } Log.i("APP", "Suggested Rule:\n" + sb.toString()); } } ruleLearner.stop();
  15. 21.