以下、本発明の実施の形態について、添付図面に基づき詳細に説明する。
<移動通信装置100の外観構成>
図1は本発明の実施の形態に係る移動通信装置100の外観構成を示す斜視図である。
図1を参照して、移動通信装置100は、携帯電話又はPHSであって、シークレット機能及び電話帳機能等を有している。この移動通信装置100には、扁平な直方体形状をなす装置本体102が含まれる。装置本体102の上面において、その下半分を占める領域に操作部104が設けられ、残りの領域には表示部106が設けられている。
操作部104には、テンキー108、通話ボタン110、シークレットボタン112、電話帳登録ボタン114、電話帳一覧表示ボタン116及びカーソルキー118等が備えられている。表示部106には、その表示面を上に向けた状態でディスプレイ120が嵌め込まれている。
テンキー108は、電話番号、メールアドレス等のアクセスコード及び文字等の入力時に操作されるキーであって、操作部104の中央下部に配置されている。
通話ボタン110は、電源をオン又はオフする際、及び通話を開始又は終了する際等に操作されるボタンである。シークレットボタン112は、シークレットデータの表示モードを切替える際に操作されるボタンである。電話帳登録ボタン114は、電話帳データに通信先の名前及び電話番号等を入力する際に操作されるボタンである。電話帳一覧表示ボタン116は、電話帳データを一覧表示又はその一覧表示を終了する際に操作されるボタンである。カーソルキー118は、ディスプレイ120の表示画面上でカーソルを上下左右に移動させる際に操作されるキーであって、その中央部に確定ボタン118Aを有している。このカーソルキー118は、テンキー108の直上に配置されている。
通話ボタン110及びシークレットボタン112と電話帳登録ボタン114及び電話帳一覧表示ボタン116とは、カーソルキー118を挟んで左右方向に離間した状態で設けられている。具体的には、通話ボタン110及びシークレットボタン112は、カーソルキー118の右側において上から下に向かってこの順に配置され、電話帳登録ボタン114及び電話帳一覧表示ボタン116は、カーソルキー118の左側において上から下に向かってこの順に配置される。
<移動通信装置100の電気的構成>
図2は移動通信装置100の電気的構成を示すブロック図である。
図2を参照して、移動通信装置100は、基地局200及び通信回線網300を介して交換機400に接続されている。この移動通信装置100には、その制御中枢を司る実質的にコンピュータからなる制御部130が含まれる。
制御部130は、何れも図示しないCPU(Central Processing Unit)、ROM(Read Only Memory)及びRAM(Random Access Memory)等から構成される。この制御部130には、メモリデバイス132、タイマ134、通信デバイス136、入力デバイス138、表示デバイス140、音声入出力デバイス142、振動出力デバイス144及びベル音出力デバイス146が接続されている。
メモリデバイス132は、電気的にデータの書換えが可能な不揮発性フラッシュメモリを含み、制御部130のワーキングメモリとして機能する。このメモリデバイス132には、電話帳メモリ領域132A、IDメモリ領域132B、パスワードメモリ領域132C及びテンポラリメモリ領域132D等が形成されている。
電話帳メモリ領域132Aには、電話帳データが格納される。IDメモリ領域132Bには、本移動通信装置100を一意に識別するためのID(Identification)として移動通信装置100固有の電話番号等が格納される。パスワードメモリ領域132Cには、利用者に本移動通信装置100を使って通信開始を指示する権限があるか否かを認証するための認証情報としてパスワードが格納される。テンポラリメモリ領域132Dには、種々のテンポラリ変数が一時的に格納される。なお、電話帳データ及びテンポラリ変数については後述する。
タイマ134は、日時を計時するための装置である。通信デバイス136は、何れも図示しないアンテナ、RF(Radio Frequency)部、変調部及び復調部等を含む。入力デバイス138は、図示しない入力コントローラ、並びに図2に示す各種のキー及びボタン108,110,112,114,116及び118等を含む。表示デバイス140は、図示しないディスプレイコントローラ、及び図2に示すディスプレイ120等を含む。音声入出力デバイス142は、何れも図示しないマイクロフォン、スピーカ及び音声入出力データ処理部等を含む。振動出力デバイス144は、図2に示す通信装置本体102の特定部位(例えば、操作部104)に振動を与えるための装置であって、何れも図示しないバイブレータ及びその駆動源となる振動モータ等を含む。ベル音出力デバイス146は、何れも図示しないベル及びその駆動源となるリンガ等を含む。
<電話帳データの構成>
図3はメモリデバイス132の電話帳メモリ領域132Aに記憶される電話帳データの構成の一例を示す図である。
図3を参照して、上記電話帳データAdr[n]には、通信先の名前(name)及び電話番号(no)、並びにその通信先がシークレットデータか否かを示す変数secの値が含まれている。この電話帳データAdr[n]では、上記の名前(name)、電話番号(no)及び変数secの値がメモリNo(i)に対応付けてリレーショナル化(テーブル化)される。上記の変数sec値が「0」であるとその通信先の名前(name)及び電話番号(no)が通常データであり、上記の変数sec値が「1」であるとその通信先の名前(name)及び電話番号(no)がシークレットデータである。
<テンポラリ変数>
図4は移動通信装置100で使用されるテンポラリ変数の一覧を示す図である。
図4を参照して、本移動通信装置100では、テンポラリ変数としてSMD、Dno、Dname、Dsec及びT_Adr[]が設定されている。テンポラリ変数SMDは、シークレットデータ表示モードのテンポラリメモリであって、その変数の値が「0」であればシークレットデータが非表示とされ、「1」であればシークレットデータが表示とされる。テンポラリ変数Dnoは、電話番号のテンポラリメモリである。テンポラリ変数Dnameは、名前のテンポラリメモリである。テンポラリ変数Dsecは、シークレットデータ「1」/通常データ「0」のテンポラリメモリである。テンポラリ変数T_Adr[]は、電話帳一覧表示のテンポラリメモリである。これらのテンポラリ変数は、計算及び処理等のために一時的に使用される変数であって、その値はメモリデバイス132のテンポラリメモリ領域132D内に少しの間記録される。
<移動通信装置100のソフトウェア構成>
本移動通信装置100は、特定の電話番号への発呼指示があった場合に、発信を行なっているかのような画面表示は行なうが、実際には発信を開始せずに発信指示してから所定時間内に特定操作を行なった場合にのみ、その画面表示態様に変化を与えて実際の発信開始制御を行なうようにプログラミングされている。
図5は移動通信装置100の機能を実現するプログラムに係るメインルーチンの制御の流れを示すフローチャートである。なお、本移動通信装置100では、電源オフ状態から電源オンすると、シークレットデータは自動的に非表示モードとなる。
図5を参照して、本移動通信装置100では、通話ボタン110により電源オン操作がなされると、まず、制御部130は、テンポラリ変数SMDに「0」を代入し、シークレットデータを非表示状態とする(ステップS100)。この変数SMD「0」は、メモリデバイス132のテンポラリメモリ領域132D内に一時格納される。
そして、制御部130は、ディスプレイ120上に待受画面を表示させ(ステップS200)、その後、制御をステップS300、S400、S500、S600及びS700に進める。
制御がステップS300〜S700に進むと、制御部130は、着呼、通話ボタン110の発信操作、シークレットボタン112の操作、電話帳登録ボタン114の操作、及び電話帳一覧表示ボタン116の表示開始操作の何れかの事象が発生したか否かを判定する。この判定結果に応じて、制御はブランチする。
着呼があった(ステップS300においてYES)場合には、制御部130は、着呼制御を行なう(ステップS800)。この着呼制御については、後で詳細に説明する。
通話ボタン110により発信操作がなされた(ステップS400においてYES)場合には、制御部130は、発呼制御を行なう(ステップS900)。この発呼制御については、後で詳細に説明する。
シークレットボタン112の操作がなされた(ステップS500においてYES)場合には、制御部130は、シークレットモード変更制御を行なう(ステップS1000)。このシークレットモード変更制御については、後で詳細に説明する。
電話帳登録ボタン114の操作がなされた(ステップS600においてYES)場合には、制御部130は、電話帳1件入力制御を行なう(ステップS1100)。この電話帳1件入力制御については、後で詳細に説明する。
電話帳一覧表示ボタン116により表示開始操作がなされた(ステップS700においてYES)場合には、制御部130は、電話帳一覧表示制御を行なう(ステップS1200)。この電話帳一覧表示制御については、後で詳細に説明する。
上記の着呼、通話ボタン110の発信操作、シークレットボタン112の操作、電話帳登録ボタン114の操作、及び電話帳一覧表示ボタン116の表示開始操作の何れの事象も発生しなかった場合(ステップS300〜S700において共にNO)には、制御部130は、制御をステップS200に戻して待受画面を表示させる。
なお、この一連の制御は、通話ボタン110により電源オフ操作がなされるまで繰返し実行される。
(着呼制御)
図6は移動通信装置100の機能を実現するためのプログラムに係るサブルーチンである着呼制御(図5のステップS800)の制御の流れを示すフローチャートである。
本着呼制御では、まず、本移動通信装置100の制御部130は、ディスプレイ120上で所定の着信表示を行なうと共に着呼通知を開始させる(ステップS802及びS804)。この着呼通知の態様としては、振動出力デバイス144を稼動させることによって振動を発生させる態様、ベル音出力デバイス146を稼動させることによってベル音を発生させる態様、及びこれらを組合せた態様を例示することができる。
そして、制御部130は、タイマ134からの計時出力に基づいて、所定時間が経過するまでに通話ボタン110の受話操作がなされるか否かを判定する(ステップS806及びS808)。この判定結果に応じて、制御はブランチする。
所定時間内に通話ボタン110により受話操作がなされた(ステップS808においてNOかつステップS806においてYES)場合には、制御部130は、着呼通知を停止する(ステップS812)。その後、制御部130は、オフフック等の電話接続制御を行なって通話の終了を待つ(ステップS814及びS816)。通話が終了する(ステップS816においてYES)と、制御部130は、制御を図5に示すステップS200に戻して待受画面を表示する。制御部130により通話終了と判断される態様としては、本移動通信装置100側での通話ボタン110の終話操作、他の通信装置からの通話終了信号の受信、及び接続エラーが所定時間続きそれによって他の通信装置と接続できない状態が継続する等の態様を挙げることができる。
所定時間内に通話ボタン110の受話操作がなされない(ステップS806においてNOかつステップS808においてYES)場合には、制御部130は、着呼通知を停止させる(ステップS810)。その後、制御部130は、制御を図5に示すステップS200に戻す。
(発呼制御)
図7及び図8は移動通信装置100の機能を実現するためのプログラムに係るサブルーチンである発呼制御(図5のステップS900)の制御の流れを示すフローチャートである。
図7を参照して、本発呼制御では、まず、本移動通信装置100の制御部130は、テンキー108の操作により電話番号が入力されるのを待つ(ステップS902)。電話番号が入力される(ステップS902においてYES)と、制御部130は、テンポラリ変数Dnoに「入力された電話番号」を、テンポラリ変数Dsecに「0」を、テンポラリ変数Dnameに「NULL」をそれぞれ代入する(ステップS904)。これらの変数Dno「入力電話番号」、Dsec「0」及びDname「NULL」は、メモリデバイス132のテンポラリメモリ領域132D内に一時格納される。その後、制御部130は、メモリデバイス132の電話帳メモリ領域132A内に格納されている電話帳データAdr[n]にアクセスし、電話帳データAdr[n]から上記入力電話番号Dnoを検索する(ステップS906)。この検索の結果、入力電話番号(以下、「発呼先電話番号」ともいう)Dnoが電話帳データに登録されているデータである(ステップS908においてYES)場合には、制御部130は、テンポラリ変数Dsecに「Adr[i].sec」を、テンポラリ変数Dnameに「Adr[i].name」をそれぞれ代入し(ステップS910)、その後、制御をステップS912に進める。このとき、上記の変数Dsec「Adr[i].sec」、Dname「Adr[i].name」は、テンポラリメモリ領域132Dに一時格納される。発呼先電話番号Dnoが電話帳データに登録されていない(ステップS908においてNO)場合には、制御部130は、制御をステップS912にジャンプさせる。
制御がステップS912に進むと、制御部130は、発呼先電話番号Dnoに対応するテンポラリ変数Dsecの値が「1」であるか否かを判定する。この判定結果に応じて、制御はブランチする。なお、上記の判定は、Adr[i].secの変数の値を参照することによって達成される。
テンポラリ変数Dsecの値が「1」ではない、即ちAdr[i].secの変数secの値が「0」である、又は電話帳データAdr[n]に入力電話番号Dnoが登録されておらず変数secの値を特定できない(ステップS912においてNO)場合には、制御部130は、通常データであると判断し、テンポラリ変数Dnameが「NULL」であるか否かを判定する(ステップS918)。テンポラリ変数Dnameが「NULL」である、即ちAdr[i].nameから発呼先の名前が特定できないと(ステップS918においてYES)、制御部130は、ディスプレイ120上に発呼先電話番号Dnoを付与して発信指示を表示させる(ステップS920)。その後、制御部130は、制御をステップS922に進める。テンポラリ変数Dnameが「NULL」でない、即ちAdr[i].nameから発呼先の名前が特定できると(ステップS918においてNO)、制御部130は、例えば、図13に示すように、ディスプレイ120上に発呼先の名前Dnameを付与して発信指示を表示させる(ステップS924)。その後、制御はステップS922に進む。
ステップS922では、制御部130は、ベル音出力デバイス146を稼動させ呼出音を鳴らし、制御を図8に示すステップS938に進める。
テンポラリ変数Dsecの値が「1」である、即ちAdr[i].secの変数secの値が「1」である(ステップS912においてYES)場合には、制御部130は、シークレットデータと判断し、図14(A)に示すように、ディスプレイ120上に発呼先電話番号Dnoを付与して発信指示を表示させると共に、ベル音出力デバイス146を稼動させて呼出音を鳴らす(ステップS914及びステップS916)。その後、制御部130は、制御を図8に示すステップS926及びステップS928に進める。
図8を参照して、発呼先に関するデータがシークレットデータであることに伴って制御がステップS926及びS928に進むと、制御部130は、タイマ134からの計時出力に基づいて、所定時間が経過するまでにテンキー108の操作によりパスワードが入力されたか否かを判定する。この判定結果に応じて、制御はブランチする。
所定時間内にパスワードが入力された(ステップS928においてNOかつステップS926においてYES)場合には、制御部130は、入力パスワードとメモリデバイス132のパスワードメモリ領域132C内に記憶されているパスワードとが一致するか否かを判定する(ステップS934)。両者が一致して入力パスワードの認証がなされると(ステップS934においてYES)、制御部130は、図14(B)に示すように、発呼先の電話番号Dnoに代えて、ディスプレイ120上に発呼先の名前Dnameを付与して発信指示を表示させる(ステップS936)。その後、制御部130は、制御をステップS938に進める。両者が一致せずに入力パスワードの認証がなされないと(ステップS934においてNO)、制御部130は、制御をステップS930に進める。
所定時間内にパスワードが入力されない(ステップS926においてNOかつステップS928においてYES)場合には、制御部130は、制御をステップS930に進める。
制御がステップS930に進むと、制御部130は、通話ボタン110の発信キャンセル操作がなされるのを待つ。通話ボタン110により発信キャンセル操作がなされれば(ステップS930においてYES)、制御部130は、ベル音出力デバイス146の稼動を停止させ呼出音を止める(ステップS923)。その後、制御部130は、制御を図5に示すステップS200に戻して待受画面を表示させる。
他方、制御がステップS938に進むと、制御部130は、発呼先電話番号Dnoに基づいて、オフフック等の電話接続制御を行なう。
そして、制御部130は、通話が開始されるまでに通話ボタン110の発信キャンセル操作がなされるか否かを判定する(ステップS940及びS942)。この判定結果に応じて、制御はブランチする。
通話開始前に通話ボタン110により発信キャンセル操作がなされた(ステップS942においてNOかつステップS940においてYES)場合には、制御部130は、呼出音を止める(ステップS950)。その後、制御部130は、制御を図5に示すステップS200に戻す。
通話ボタン110の発信キャンセル操作がなされることなく通話が開始された(ステップS940においてNOかつステップS942においてYES)場合には、制御部130は、呼出音を止めて通話の終了を待つ(ステップS946及びS948)。通話が終了すると(ステップS948においてYES)、制御部130は、制御を図5に示すステップS200に戻す。
(シークレットモード変更制御)
図9は移動通信装置100の機能を実現するためのプログラムに係るサブルーチンであるシークレットモード変更制御(図5のステップS1000)の制御の流れを示すフローチャートである。
本シークレットモード変更制御では、まず、本移動通信装置100の制御部130は、テンポラリ変数SMDの値が「1」であるか否かを判定する(ステップS1002)。この判定結果に応じて、制御はブランチする。
テンポラリ変数SMDの値が「1」でない(ステップS1002においてNO)場合には、制御部130は、テンキー108の操作によりパスワードが入力されるまでにシークレットボタン112が再び操作されたか否かを判定する(ステップS1004及びS1006)。パスワード入力前にシークレットボタン112の再操作があると(ステップS1006においてNOかつステップS1004においてYES)、制御部130は、何の制御も行なうことなく、制御を図5に示すステップS200に戻して待受画面を表示させる。なお、待受画面には、シークレット設定モードが分かるような表示がある。シークレットボタン112の再操作がなされることなくパスワードが入力されると(ステップS1004においてNOかつステップS1006においてYES)、制御部130は、上記入力パスワードとメモリデバイス132のパスワードメモリ領域132C内に記憶されているパスワードとが一致するか否かを判定する(ステップS1008)。両者が一致し入力パスワードが認証されれば(ステップS1008においてYES)、制御部130は、テンポラリ変数SMDに「1」を代入してデータ表示モードをシークレットデータ表示モードに設定する(ステップS1010)。この変数SMD「1」は、メモリデバイス132のテンポラリメモリ領域132D内に一時格納される。その後、制御部130は、制御を図5に示すステップS200に戻す。両者が一致せず入力パスワードが認証されなければ(ステップS1008においてNO)、制御部130は、何の制御も行なうことなく、制御を図5に示すステップS200に戻す。
テンポラリ変数SMDの値が「1」である(ステップS1002においてYES)場合には、制御部130は、テンポラリ変数SMDに「0」を代入してデータ表示モードをシークレットデータ非表示モードに設定する(ステップS1012)。この変数SMD「0」は、テンポラリメモリ領域132Dに一時格納される。その後、制御部130は、制御を図5に示すステップS200に戻す。
(電話帳1件入力制御)
図10は移動通信装置100の機能を実現するためのプログラムに係るサブルーチンである電話帳1件入力制御(図5のステップS1100)の制御の流れを示すフローチャートである。
本電話帳1件入力制御では、まず、本移動通信装置100の制御部130は、テンポラリ変数Dnoに「NULL」を、テンポラリ変数Dnameに「NULL」を、テンポラリ変数Dsecに「0」を代入する(ステップS1102)。これらの変数Dno「NULL」、Dname「NULL」及びDsec「0」は、メモリデバイス132のテンポラリメモリ領域132D内に一時格納される。
そして、制御部130は、通話ボタン110の入力キャンセル操作、電話番号の入力、名前の入力、シークレットボタン112の操作、及び電話帳登録ボタン114の操作の何れかの事象が発生したか否かを判定する(ステップS1104、S1106、S1108、S1110及びS1112)。この判定結果に応じて、制御はブランチする。
通話ボタン110により入力キャンセル操作がなされた(ステップS1104においてYES)場合には、制御部130は、何の制御も行なうことなく、制御を図5に示すステップS200に戻して待受画面を表示させる。
テンキー108の操作により電話番号が入力された(ステップS1106においてYES)場合には、制御部130は、テンポラリ変数Dnoに「入力された電話番号」を代入する(ステップS1118)。この変数Dno「入力電話番号」は、テンポラリメモリ領域132Dに一時格納される。その後、制御部130は、制御をステップS1104に戻す。
テンキー108の操作により名前が入力された(ステップS1108においてYES)場合には、制御部130は、テンポラリ変数Dnameに「入力された名前」を代入する(ステップS1120)。この変数Dname「入力氏名」は、テンポラリメモリ領域132Dに一時格納される。その後、制御部130は、制御をステップS1104に戻す。
シークレットボタン112の操作がなされた(ステップS1110においてYES)場合には、制御部130は、テンポラリ変数Dsecの値が「0」であるか否かを判定する(ステップS1122)。制御部130は、テンポラリ変数Dsecの値が「0」であれば(ステップS1122においてYES)、その値を「1」に変更し(ステップS1126)、テンポラリ変数Dsecの値が「0」でなければ(ステップS1122においてNO)、その値を「0」に変更する(ステップS1124)。この変更された変数Dsecの値は、テンポラリメモリ領域132Dに一時格納される。そして、制御部130は、制御をステップS1104に戻す。
電話帳登録ボタン114の操作がなされた(ステップS1112においてYES)場合には、制御部130は、電話番号及び名前が共に入力されているか(テンポラリ変数Dno≠NULLかつテンポラリ変数Dname≠NULLであるか)否かを判定する(ステップS1114)。
上記の判定条件を満足すると(ステップS1114においてYES)、制御部130は、テンポラリ変数Adr[DCNT].noに「入力された電話番号Dno」を、テンポラリ変数Adr[DCNT].nameに「入力された名前Dname」を、テンポラリ変数Adr[DCNT].secに「設定された変数secの値Dsec」をそれぞれ代入すると共に、現在のデータ登録されている数に「1」を加算(DCNT++)する(ステップS1116)。その結果、電話帳データAdr[n]には、1件の新しいデータが登録される。上記の変数Adr[DCNT].no「Dno」、Adr[DCNT].name「Dname」及びAdr[DCNT].sec「Dsec」は、テンポラリメモリ領域132Dに一時格納される。その後、制御部130は、制御を図5に示すステップS200に戻す。
上記の条件を満足しないと(ステップS1114においてNO)、制御部130は、何の制御も行なうことなく、制御をステップS1104に戻す。
上記の通話ボタン110の入力キャンセル操作、電話番号の入力、名前の入力、シークレットボタン112の操作、及び電話帳登録ボタン114の操作の何れの事象も発生しなかった(ステップS1104〜S1112において共にNO)場合には、制御部130は、制御をそのままステップS1104に戻す。
上記のステップS1104〜S1112までに関係する一連の制御は、少なくとも、入力キャンセル操作がなされるか、又は電話番号及び名前が入力され電話帳登録操作がなされるまで繰返し実行される。
(電話帳一覧表示制御)
図11は移動通信装置100の機能を実現するためのプログラムに係るサブルーチンである電話帳一覧表示制御(図5のステップS1200)の制御の流れを示すフローチャートである。
本電話帳一覧表示制御では、シークレットデータ表示モードならば、図15(A)に示すように、電話帳データAdr[n]の登録されている全てのデータがディスプレイ120上に一覧表示され、逆にシークレットデータ非表示モードならば、図15(B)に示すように、シークレットデータ以外の登録データのみがディスプレイ120上に一覧表示される。
具体的には、まず、本移動通信装置100の制御部130は、変数Cに「電話帳登録件数」を、電話帳データ配列インデックスiに「0」を、表示用配列インデックスjに「0」をそれぞれ代入する(ステップS1202)。
そして、制御部130は、電話帳登録件数Cが「0」であるか否かを判定する(ステップS1204)。このステップにおいてNOの場合には、制御はステップS1206に進み、YESの場合には、制御は図5に示すステップS200に戻って待受画面が表示される。
制御がステップS1206に進むと、制御部130は、データ表示モードがシークレットデータ非表示モードであるか(テンポラリ変数SMD=0であるか)否かを判定する。シークレットデータ非表示モード(テンポラリ変数SMD=0)である(ステップS1206においてYES)場合には、制御部130は、制御をステップS1208に進める。シークレットデータ非表示モードでない、即ちシークレットデータ表示モード(テンポラリ変数SMD=1)である(ステップS1206においてNO)場合、制御部130は、制御をステップS1210にジャンプさせる。
ステップS1208では、制御部130は、テンポラリ変数Adr[i].sec=1であるか否かを判定する。テンポラリ変数Adr[i].secの値が「1」でない、即ち通常データである(ステップS1208においてNO)場合には、制御部130は、制御をステップS1210及びS1212に進める。テンポラリ変数Adr[i].secの値が「1」である、即ちシークレットデータである(ステップS1208においてYES)場合には、制御部130は、制御をステップS1216にジャンプさせる。
制御がステップS1210及びS1212に進むと、制御部130は、一覧表示用のテンポラリ変数T_Adr[j].noに「Adr[i].no」を、一覧表示用のテンポラリ変数T_Adr[j].nameに「Adr[i].name」を、一覧表示用のテンポラリ変数T_Adr[j].secに「Adr[i].sec」をそれぞれ代入した後、これら代入したT_Adr[j].noとT_Adr[j].nameとをj+1番目に表示する。このとき、上記の変数T_Adr[j].no「Adr[i].no」、T_Adr[j].name「Adr[i].name」及びT_Adr[j].sec「Adr[i].sec」は、テンポラリメモリ領域132Dに一時格納される。その後、制御部130は、配列インデックスjに「1」を加算(j++)し(ステップS1214)、その後、制御をステップS1216に進める。
制御がステップS1216に進むと、制御部130は、配列インデックスiに「1」を加算(i++)する。
そして、制御部130は、電話帳登録件数を示す変数Cの値がステップS1216で加算した配列インデックスiの値(現在の配列インデックスiの値)と一致しているか(C=iであるか)否かを判定する(ステップS1218)。上記変数Cの値が現在の配列インデックスiの値と一致している(ステップS1218においてYES)場合には、制御部130は、電話帳選択制御を行なう(ステップS1300)。この電話帳選択制御については、後で詳細に説明する。上記変数Cの値が現在の配列インデックスiの値と一致しない(ステップS1218においてNO)場合には、制御部130は、そのまま制御をステップS1206に戻す。
上記のステップS1206〜S1218の一連の制御は、変数C及び配列インデックスiの両者の値が一致するまで繰返し実行される。
(電話帳選択制御)
図12は移動通信装置100の機能を実現するためのプログラムに係るサブルーチンである電話帳選択制御(図11のステップS1300)の制御の流れを示すフローチャートである。
図12を参照して、本電話帳選択制御では、まず、移動通信装置100の制御部130は、電話帳データ配列インデックスi(=メモリNo)に「0」を代入する(ステップS1302)。
そして、制御部130は、ディスプレイ120上でi+1番目のデータ上にカーソル表示させる(ステップS1304)。
その後、カーソルキー118のカーソル上移動操作、カーソルキー118のカーソル下移動操作、通話ボタン110の発信操作、及び電話帳一覧表示ボタン116の表示終了操作の何れかの事象が発生したか否かを判定する(ステップS1306、S1308、S1310及びS1312)。この判定結果に応じて、制御はブランチする。
カーソルキー118によりカーソル上移動操作がなされた(ステップS1306においてYES)場合には、制御部130は、現在カーソル表示されているデータが先頭のデータか否かを判定する(ステップS1314)。先頭データでないと(ステップS1314においてNO)、制御部130は、i+1番目のデータ上のカーソルを消去する(即ち、現在のカーソル表示を消去する)と共に、配列インデックスiを「1」減算(i−−)する(ステップS1316及びS1318)。その後、制御部130は、制御をステップS1304に戻す。その結果、1段上の欄のデータ上にカーソル表示がなされることになる。先頭データであると(ステップS1314においてYES)、制御部130は、何の制御も行なうことなく、制御をステップS1304に戻す。
カーソルキー118によりカーソル下移動操作がなされた(ステップS1308においてYES)場合には、制御部130は、現在カーソル表示されているデータが最終のデータか否かを判定する(ステップS1320)。最終データでないと(ステップS1320においてNO)、制御部130は、i+1番目のデータ上のカーソルを消去する(即ち、現在のカーソル表示を消去する)と共に、配列インデックスiに「1」を加算(i++)する(ステップS1322及びS1324)。その後、制御部130は、制御をステップS1304に戻す。その結果、1段下の欄のデータ上にカーソル表示がなされることになる。最終データであると(ステップS1314においてYES)、制御部130は、何の制御も行なうことなく、制御をステップS1304に戻す。
通話ボタン110により発信操作がなされた(ステップS1310においてYES)場合には、制御部130は、テンポラリ変数Dnoに「T_Adr[i].no」を、テンポラリ変数Dnameに「T_Adr[i].name」を、テンポラリ変数Dsecに「T_Adr[i].sec」をそれぞれ代入する。これらの変数Dno「T_Adr[i].no」、Dname「T_Adr[i].name」及びDsec「T_Adr[i].sec」は、メモリデバイス132のテンポラリメモリ領域132D内に一時格納される。その後、制御部130は、制御を図7に示すステップS912に移す。これにより、選択された電話帳データの内容に応じた態様で発信指示及び電話接続等がなされる。
電話帳一覧表示ボタン116により表示終了操作がなされた(ステップS1312においてYES)場合には、制御部130は、制御を図5に示すステップS200に戻して待受画面を表示させる。
上記のカーソルキー118のカーソル上移動操作、カーソルキー118のカーソル下移動操作、通話ボタン110の発信操作、及び電話帳一覧表示ボタン116の表示終了操作の何れの事象も発生しなかった(ステップS1306〜S1312において共にNO)場合には、制御部130は、制御をステップS1304に戻す。
<動作>
本移動通信装置100は、以下のように動作する。
電話帳データにおいて通常データ(変数sec=0)としてデータが登録されている他の通信装置に対して発信指示がなされた場合には、図13に示すように、発呼時に電話帳データに登録されている発呼先の名前を付与して発信指示表示が行なわれる。
これに対して、電話帳データにおいてシークレットデータ(変数sec=1)として登録されている他の通信装置、又は電話帳データに登録されていない他の通信装置に対して発信指示がなされた場合には、図14(A)に示すように、発呼時に発呼先電話番号のみを付与して発信指示表示がなされる。特に、発呼先のデータがシークレットデータとして電話帳データに登録されていると、この時点では実際の発呼制御は行なわれない。そして、所定時間内にパスワードが入力され、この入力パスワードの認証がなされたときに限って、実際の発呼制御が行なわれる。このとき、パスワードの入力を促す画面表示等は一切行なわれない。実際に発呼制御が行なわれるときに、発呼先に関するデータがシークレットデータとして指定されていると、発信指示表示は、図14(B)に示すように、発呼先電話番号に代えて発呼先の名前を付与したものにその表示態様が変更される。なお、発呼先に関するデータが電話帳データに登録されていない場合には、当然に発呼先の名前も特定できないので、発信指示表示の態様は変更されない。
<作用・効果>
本実施の形態によると、以下の作用・効果を奏する。
(1)発呼表示制御から観ると、本実施の形態では、シークレットデータ非表示モード時に、通信開始指示がなされると、これを契機として、電話帳データに登録されている所定の通信先への通信開始指示か否かが判定される。電話帳データに登録されている所定の通信先への通信開始指示であると判定された際には、当該所定の通信先の電話番号及びその通信先の名前が表示される。他方、シークレットデータ表示モード時に、通信開始指示がなされ、当該通信開始指示が電話帳データ登録済みの所定の通信先への通信開始指示であると判定された場合には、当該通信開始指示以後の所定の時間内に入力されたパスワードと記憶されている認証情報との比較が行なわれる。この認証判定の結果として、パスワード入力の認証がなされた際には、発信情報の表示が、上記の通信開始指示のあった通信先を特定する名前を含む表示態様に変更される。
(2)発呼通信制御から観ると、本実施の形態では、シークレットデータ表示モード時に、通信開始指示がなされると、通信開始を意味するメッセージが表示される、即ちダミー発呼制御が行なわれると共に、当該通信開始指示が電話帳データに登録されている所定の通信先への通信開始指示か否かが判定される。データ登録済みの所定の通信先への通信開始指示であると判定された際には、所定の時間内に入力パスワードの認証がなされない限り、上記のダミー発呼制御から実際の通信開始制御への切替えが行なわれない。
上記の(1)及び(2)の観点から、発信指示を無効にしたり、又はキーロックをかけたりしなくても、不正使用に伴う個人情報の漏洩を防止できる結果、本移動通信装置100は、よりセキュリティー性の高いものとなる。もちろん、第三者による不正使用も十分に抑止できる。
ところで、シークレットデータを着信履歴データの一覧から外すべきか否かについては、ソフトウェアの設計仕様上、微妙な問題が生じ得るのが現状である。具体的には、シークレットデータを着信履歴データの一覧に残せば、所有者のプライバシー情報の漏洩につながり、逆に着信履歴データの一覧から外せば、誰から着信があったかを確認するときにパスワードの入力が常に必要となってしまう。
このような現状に対し、本実施の形態では、上記のように、所定の通信先に関するデータが電話帳データにシークレットデータとして登録されている場合には、入力パスワードの認証に伴い実際に通信開始制御が行なわれている最中に発信情報表示態様が、上記の(1)のように、パスワード認証前の表示態様とは異なる態様に変更される、即ち実際の通信開始指示の際に(電話番号が確定した時点で)認証パスワードの入力が必要か否かの判断をしているため、例えば、着信履歴データは表示、逆に発信履歴データは非表示等のように利用者側に「なぜ、こんな仕様になっているのか?」又は「バグ(Bug)では?」等と疑問を感じさせる、といったソフトウェアの設計仕様上の微妙な問題も生じない。その結果、ソフトウェアを設計する際の開発負荷が小さくなる等の波及効果もある。
ここで、本実施の形態において、上述したように、シークレットデータ表示モード時に限って(換言すると、シークレット化されている通信装置のみに対して)、パスワード入力が認証されることを条件に、通信先の名前を表示するように発信表示制御を行うようにしているのは、かかる制御対象の通信装置は、ある意味で本移動通信装置100の正規の使用者とも言える「親しい友人又は知人」の通信端末であるからである。換言すれば、本移動通信装置100の持主の「親しい友人又は知人」に不正使用者が電話をかける、という行為に対しては、発呼しないよりは、むしろ発呼する方がベターであって、「親しい友人又は知人」を通じて不正使用者の特定ができ得るが、本実施の形態では、パスワード入力の認証がなされない限り発呼しない。その理由は、本実施の形態では、不正使用者として、全く見知らぬ人を想定しているわけではないからである。主な想定は、「親」及び「悪友」、即ち不正使用者とは言っても、「犯罪」と断言できるものを想定しているのではなく、むしろ「いたずら」及び「過剰(自分勝手)に子供を心配する、親の身勝手な行為」的な「知人による配慮の欠けたプライバシーの侵害行為」を想定している。したがって、上述した問題があるのにもかかわらず、あえて、とあるアドレス情報をシークレット登録する下記のシーン等から生じる課題を解決し得る。
上記のシーンの一例として、最近、プロポーズして、友達以上恋人未満程度の仲になり電話番号を交換した、未だ本当の親友程度しか知らない、ましては親が知るよしもない、アドレス情報で、例えば、「最近、うちの娘は誰か分からない男と仲良くしてるな〜」と、テーブルの上に置き忘れた携帯電話の着信履歴から電話をかける、という行為等、変なアクションを取られては困る場合には、電話をかける行為を防止するのみならず、電話をかけた先の情報(名前)の漏洩(表示)を未然に防止できる等、その他に種々の波及効果を生じる。
なお、本発明は上記実施の形態に限定されるものではない。上記実施の形態では、電話帳データに登録されているデータがシークレットデータとして指定されている、又は電話帳データに登録されていない、所定の通信先への通信開始指示であると判定された場合に限って、本発明の制御が実行される例について記載した。しかし、本発明はそのような構成に限定されない。例えば、通常データあるか、又はシークレットデータであるかとは無関係に、電話帳データに登録されている電話番号への発呼指示があった場合に、画面表示は行なうが、実際には発信を開始せずに発信指示してから所定時間内に入力パスワードが認証されたときに限り、上記の画面表示態様に変化を与えて実際の発信開始制御を行なうように構成してもよい。また、上記実施の形態では、本発明を通話通信(電話通信)に適用した例について記載した。しかし、本発明はそのような構成に限定されない。例えば、本発明をメール通信等のテキスト通信に適用しても構わない。この場合でも、本発明の目的は十分に達成し得る。その他、本明細書に添付の特許請求の範囲内での種々の設計変更及び修正を加え得ることは勿論である。
すなわち、本明細書で開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。