te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>dart - How can I create and configure a new profile on DataWedge from a Flutter application? - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

dart - How can I create and configure a new profile on DataWedge from a Flutter application? - Stack Overflow

programmeradmin4浏览0评论

I'm developing a mobile app using Flutter, which will use the Zebra barcode scanner. I need to create and configure a new DataWedge profile when the app initializes. I created the function below using Dart. The first part of the code works—it successfully creates the profile with the correct name—but it doesn't apply any of the configurations I wrote. I've tried many things, but nothing has really worked.

// ignore_for_file: avoid_print

import 'package:android_intent_plus/android_intent.dart';
import 'dart:convert';

void configureDataWedgeProfile() async {
  const profileName = "app_coletor";
  const packageName = "com.kugel.app_coletor";
  const intentAction = "com.kugel.app_coletor.ACTION";

  try {
    print("Criando perfil do DataWedge...");
    await AndroidIntent(
      action: "com.symbol.datawedge.api.ACTION",
      arguments: {"com.symbol.datawedge.api.CREATE_PROFILE": profileName},
    ).sendBroadcast();

    await Future.delayed(const Duration(seconds: 2));

    print("Associando aplicativo ao perfil...");
    await AndroidIntent(
      action: "com.symbol.datawedge.api.ACTION",
      arguments: {
        "com.symbol.datawedge.api.SET_CONFIG": jsonEncode({
          "PROFILE_NAME": profileName,
          "PROFILE_ENABLED": "true",
          "CONFIG_MODE": "UPDATE",
          "APP_LIST": [
            {
              "PACKAGE_NAME": packageName,
              "ACTIVITY_LIST": ["*"]
            }
          ]
        })
      },
    ).sendBroadcast();

    await Future.delayed(const Duration(seconds: 2));

    print("Configurando o plugin de código de barras...");
    await AndroidIntent(
      action: "com.symbol.datawedge.api.ACTION",
      arguments: {
        "com.symbol.datawedge.api.SET_CONFIG": jsonEncode({
          "PROFILE_NAME": profileName,
          "CONFIG_MODE": "UPDATE",
          "PLUGIN_CONFIG": {
            "PLUGIN_NAME": "BARCODE",
            "RESET_CONFIG": "true",
            "PARAM_LIST": {
              "scanner_selection": "auto",
              "decode_audio_feedback_uri":
                  "file:///system/media/audio/ui/VideoRecord.ogg"
            }
          }
        })
      },
    ).sendBroadcast();

    await Future.delayed(const Duration(seconds: 2));

    print("Configurando o plugin de intent...");
    await AndroidIntent(
      action: "com.symbol.datawedge.api.ACTION",
      arguments: {
        "com.symbol.datawedge.api.SET_CONFIG": jsonEncode({
          "PROFILE_NAME": profileName,
          "CONFIG_MODE": "UPDATE",
          "PLUGIN_CONFIG": {
            "PLUGIN_NAME": "INTENT",
            "RESET_CONFIG": "true",
            "PARAM_LIST": {
               "intent_output_enabled": "true",
               "intent_action": intentAction,
               "intent_delivery": "2"
            }
          }
        })
      },
    ).sendBroadcast();

    print("Perfil do DataWedge configurado e app vinculado!");
  } catch (e) {
    print("Erro ao configurar o DataWedge: $e");
  }
}```

I'm developing a mobile app using Flutter, which will use the Zebra barcode scanner. I need to create and configure a new DataWedge profile when the app initializes. I created the function below using Dart. The first part of the code works—it successfully creates the profile with the correct name—but it doesn't apply any of the configurations I wrote. I've tried many things, but nothing has really worked.

// ignore_for_file: avoid_print

import 'package:android_intent_plus/android_intent.dart';
import 'dart:convert';

void configureDataWedgeProfile() async {
  const profileName = "app_coletor";
  const packageName = "com.kugel.app_coletor";
  const intentAction = "com.kugel.app_coletor.ACTION";

  try {
    print("Criando perfil do DataWedge...");
    await AndroidIntent(
      action: "com.symbol.datawedge.api.ACTION",
      arguments: {"com.symbol.datawedge.api.CREATE_PROFILE": profileName},
    ).sendBroadcast();

    await Future.delayed(const Duration(seconds: 2));

    print("Associando aplicativo ao perfil...");
    await AndroidIntent(
      action: "com.symbol.datawedge.api.ACTION",
      arguments: {
        "com.symbol.datawedge.api.SET_CONFIG": jsonEncode({
          "PROFILE_NAME": profileName,
          "PROFILE_ENABLED": "true",
          "CONFIG_MODE": "UPDATE",
          "APP_LIST": [
            {
              "PACKAGE_NAME": packageName,
              "ACTIVITY_LIST": ["*"]
            }
          ]
        })
      },
    ).sendBroadcast();

    await Future.delayed(const Duration(seconds: 2));

    print("Configurando o plugin de código de barras...");
    await AndroidIntent(
      action: "com.symbol.datawedge.api.ACTION",
      arguments: {
        "com.symbol.datawedge.api.SET_CONFIG": jsonEncode({
          "PROFILE_NAME": profileName,
          "CONFIG_MODE": "UPDATE",
          "PLUGIN_CONFIG": {
            "PLUGIN_NAME": "BARCODE",
            "RESET_CONFIG": "true",
            "PARAM_LIST": {
              "scanner_selection": "auto",
              "decode_audio_feedback_uri":
                  "file:///system/media/audio/ui/VideoRecord.ogg"
            }
          }
        })
      },
    ).sendBroadcast();

    await Future.delayed(const Duration(seconds: 2));

    print("Configurando o plugin de intent...");
    await AndroidIntent(
      action: "com.symbol.datawedge.api.ACTION",
      arguments: {
        "com.symbol.datawedge.api.SET_CONFIG": jsonEncode({
          "PROFILE_NAME": profileName,
          "CONFIG_MODE": "UPDATE",
          "PLUGIN_CONFIG": {
            "PLUGIN_NAME": "INTENT",
            "RESET_CONFIG": "true",
            "PARAM_LIST": {
               "intent_output_enabled": "true",
               "intent_action": intentAction,
               "intent_delivery": "2"
            }
          }
        })
      },
    ).sendBroadcast();

    print("Perfil do DataWedge configurado e app vinculado!");
  } catch (e) {
    print("Erro ao configurar o DataWedge: $e");
  }
}```
Share Improve this question asked Feb 17 at 11:55 Otávio Luiz NandiOtávio Luiz Nandi 515 bronze badges New contributor Otávio Luiz Nandi is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
Add a comment  | 

1 Answer 1

Reset to default 3

Solved! It seems the issue was with the AndroidIntentPlus package. I tried using the FlutterDataWedge package instead, and it worked. The code barely changed...

import 'package:flutter_datawedge/flutter_datawedge.dart';

void configureDataWedgeProfile() async {
  const String profileName = "app_coletor";
  const String packageName = "com.kugel.app_coletor";
  const String intentAction = "com.kugel.app_coletor.ACTION";

  try {
    await FlutterDataWedge().createDefaultProfile(profileName: profileName);

    await Future.delayed(const Duration(seconds: 1));

    await FlutterDataWedge().updateProfile(
      profileName: profileName,
      pluginName: "APP_LIST",
      config: {
        "PROFILE_NAME": profileName,
        "PROFILE_ENABLED": "true",
        "CONFIG_MODE": "UPDATE",
        "APP_LIST": [
          {
            "PACKAGE_NAME": packageName,
            "ACTIVITY_LIST": ["*"]
          }
        ]
      },
    );

    await Future.delayed(const Duration(seconds: 1));

    await FlutterDataWedge().updateProfile(
      profileName: profileName,
      pluginName: "BARCODE",
      config: {
        "PROFILE_NAME": profileName,
        "CONFIG_MODE": "UPDATE",
        "PLUGIN_CONFIG": {
          "PLUGIN_NAME": "BARCODE",
          "RESET_CONFIG": "true",
          "PARAM_LIST": {
            "scanner_selection": "auto",
            "decode_audio_feedback_uri":
                "file:///system/media/audio/ui/VideoRecord.ogg"
          }
        }
      },
    );

    await Future.delayed(const Duration(seconds: 1));

    await FlutterDataWedge().updateProfile(
      profileName: profileName,
      pluginName: "INTENT",
      config: {
        "PROFILE_NAME": profileName,
        "CONFIG_MODE": "UPDATE",
        "PLUGIN_CONFIG": {
          "PLUGIN_NAME": "INTENT",
          "RESET_CONFIG": "true",
          "PARAM_LIST": {
            "intent_output_enabled": "true",
            "intent_action": intentAction,
            "intent_delivery": "2"
          }
        }
      },
    );
  } catch (e) {
    print("Erro ao configurar o DataWedge: $e");
  }
}

发布评论

评论列表(0)

  1. 暂无评论