通知の登録/登録解除

DataWedge 11.0

REGISTER_FOR_NOTIFICATION

DataWedge 6.4 で導入。

アプリを登録または登録解除して、構成、スキャナ、およびプロファイルの切り替えに関連するステータス変更の通知を、アプリで受信できるようにします。こうしたステータス変更は、DataWedge API 呼び出し (IMPORT_CONFIGSWITCH TO_PROFILESCANNER_INPUT_PLUGIN など) または DataWedge プロファイルの変更 (プロファイル自動インポートなど) によって発生する可能性があります。

関数プロトタイプ

Bundle b = new Bundle();
    b.putString("com.symbol.datawedge.api.APPLICATION_NAME","com.example.MyApp");
    b.putString("com.symbol.datawedge.api.NOTIFICATION_TYPE","PROFILE_SWITCH");
    Intent i = new Intent();
    i.setAction("com.symbol.datawedge.api.ACTION");
    i.putExtra("com.symbol.datawedge.api.REGISTER_FOR_NOTIFICATION", b);
    this.sendBroadcast(i);

パラメータ

ACTION [String]: "com.symbol.datawedge.api.ACTION"

EXTRA_DATA [String]: "com.symbol.datawedge.api.REGISTER_FOR_NOTIFICATION"

バンドル:

  • APPLICATION_NAME - 登録するアプリのパッケージ名
  • NOTIFICATION_TYPE - サポートされているタイプ:
    • CONFIGURATION_UPDATE
    • PROFILE_SWITCH
    • SCANNER_STATUS

戻り値

要求された DataWedge NOTIFICATION_TYPE のステータスを持つバンドルを返します

EXTRA NAME: "com.symbol.datawedge.api.NOTIFICATION"

バンドル:

  • CONFIGURATION_UPDATE [String]:
    • "PROFILE_IMPORTED" "FULL_DB_IMPORTED"
    • "PROFILE_NAME": "<アプリケーション パッケージ名>"
  • PROFILE_SWITCH:
    • "PROFILE_IMPORTED" "FULL_DB_IMPORTED"
    • "PROFILE_NAME": "<使用中のプロファイル名>"
  • SCANNER_STATUS:
    • WAITING – スキャナは有効になっており、物理的トリガまたは SOFT_SCAN_TRIGGER インテントを使用してスキャンする準備ができています。
    • SCANNING – スキャナがスキャン ビームを照射し、スキャンが進行中です。この場合、アプリケーションでは必要に応じて他のコントロールを無効にすることができます。
    • CONNECTED – Bluetooth スキャナがデバイスに接続され、アプリケーションで有効 (または無効) にすることができるようになりました。現在アクティブなプロファイルでは、スキャナの選択を [自動] に設定する必要があります。
    • DISCONNECTED – Bluetooth スキャナがデバイスから切断されました。この状態でスキャナを有効または無効にするインテントを送信すると、現在のデフォルト スキャナが有効または無効になります。
    • IDLE – スキャナは、「有効になっているが、まだ待機状態ではない」、「インテントにより中断状態になっている (SUSPEND_PLUGIN など)」、または「ハードウェア トリガのために無効になっている」のいずれかの状態にあります。
    • DISABLED – スキャナは無効になっています。アクティブなプロファイルが手動で無効になった場合、またはスキャナがインテント (DISABLE_PLUGIN など) により無効になった場合、このステータスは、スキャナ プラグインによってブロードキャストされます。

スキャナ ステータス通知は、アクティブなプロファイル内のスキャナが有効になっている場合にのみ送信されます

: (現在アクティブなプロファイルの) PROFILE_NAME は、開発者が必要なプロファイルのスキャナ イベントのみをフィルタリングできるように、SCANNER_STATUS とともに返されます。

コード例

// TO REGISTER AN APP TO RECIEVE NOTIFICATIONS

// Register for notifications - PROFILE_SWITCH

    Bundle b = new Bundle();
    b.putString("com.symbol.datawedge.api.APPLICATION_NAME","com.example.intenttest");
    b.putString("com.symbol.datawedge.api.NOTIFICATION_TYPE","PROFILE_SWITCH");
    Intent i = new Intent();
    i.setAction("com.symbol.datawedge.api.ACTION");
    i.putExtra("com.symbol.datawedge.api.REGISTER_FOR_NOTIFICATION", b); // (1)
    this.sendBroadcast(i);

// To unregister, change only the iPutExtra command

    Bundle b = new Bundle();
    b.putString("com.symbol.datawedge.api.APPLICATION_NAME","com.example.intenttest");
    b.putString("com.symbol.datawedge.api.NOTIFICATION_TYPE","PROFILE_SWITCH");
    Intent i = new Intent();
    i.setAction("com.symbol.datawedge.api.ACTION");
    i.putExtra("com.symbol.datawedge.api.UNREGISTER_FOR_NOTIFICATION", b);
    this.sendBroadcast(i);


// Register for notifications - SCANNER_STATUS

    Bundle b = new Bundle();
    b.putString("com.symbol.datawedge.api.APPLICATION_NAME","com.example.intenttest");
    b.putString("com.symbol.datawedge.api.NOTIFICATION_TYPE", "SCANNER_STATUS");
    Intent i = new Intent();
    i.setAction("com.symbol.datawedge.api.ACTION");
    i.putExtra("com.symbol.datawedge.api.REGISTER_FOR_NOTIFICATION", b);//(1)
    this.sendBroadcast(i);

// To unregister, change only the iPutExtra command

    Bundle b = new Bundle();
    b.putString("com.symbol.datawedge.api.APPLICATION_NAME","com.example.intenttest");
    b.putString("com.symbol.datawedge.api.NOTIFICATION_TYPE", "SCANNER_STATUS");
    Intent i = new Intent();
    i.setAction("com.symbol.datawedge.api.ACTION");
    i.putExtra("com.symbol.datawedge.api.UNREGISTER_FOR_NOTIFICATION", b);
    this.sendBroadcast(i);


// TO RECIEVE NOTIFICATIONS

    public static final String NOTIFICATION_ACTION  = "com.symbol.datawedge.api.NOTIFICATION_ACTION";
    public static final String NOTIFICATION_TYPE_SCANNER_STATUS = "SCANNER_STATUS";
    public static final String NOTIFICATION_TYPE_PROFILE_SWITCH = "PROFILE_SWITCH";
    public static final String NOTIFICATION_TYPE_CONFIGURATION_UPDATE = "CONFIGURATION_UPDATE";

    private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            Log.d(TAG, "#DataWedge-APP# Action: " + action);

            if(action.equals(NOTIFICATION_ACTION)){

                if(intent.hasExtra("com.symbol.datawedge.api.NOTIFICATION")) {
                    Bundle b = intent.getBundleExtra("com.symbol.datawedge.api.NOTIFICATION");
                    String NOTIFICATION_TYPE  = b.getString("NOTIFICATION_TYPE");
                    if(NOTIFICATION_TYPE!= null) {
                        switch (NOTIFICATION_TYPE) {
                            case NOTIFICATION_TYPE_SCANNER_STATUS:
    Log.d(TAG, "SCANNER_STATUS: status: " + b.getString("STATUS") + ", profileName: " + b.getString("PROFILE_NAME"));
                                break;

                            case NOTIFICATION_TYPE_PROFILE_SWITCH:
    Log.d(TAG, "PROFILE_SWITCH: profileName: " + b.getString("PROFILE_NAME") + ", profileEnabled: " + b.getBoolean("PROFILE_ENABLED"));
                                break;

                            case NOTIFICATION_TYPE_CONFIGURATION_UPDATE:
                                break;
                        }
                    }
                }
            }
        }
    };

    void registerReceivers() {
    //to register the broadcast receiver
        IntentFilter filter = new IntentFilter();
        filter.addAction(NOTIFICATION_ACTION);
        registerReceiver(broadcastReceiver, filter);//Android method
    }
    void unRegisterReceivers() {
    //to unregister the broadcast receiver
        unregisterReceiver(broadcastReceiver); //Android method
    }

コメント

(なし)


関連項目:

Zebra Support Central | インテグレータ ガイド、製品マニュアル、ソフトウェア ダウンロードおよびサポート

LaunchPad | Zebra 開発者コミュニティ

インテント | Android 開発者

インテントおよびインテント フィルタ | Android 開発者

Android インテント | チュートリアル