• ベストアンサー

PhoneGapとjavaの変数の取得

TELEPHONY_SERVICEのgetDeviceId()で取得できる値をPhoneGapから取得する方法を教えてください。 直接取得できるなら直接の方法を教えてください。 MainActivity.javaにgetDeviceId()で取得した値をグローバル変数などに代入してPhoneGapでJavaScriptなどでその値を参照することができましたらその方法も教えてください。

  • Java
  • 回答数2
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
noname#247307
noname#247307
回答No.2

>webviewを作るために >WebView webView = new WebView(this); >setContentView(webView); >という2行を追加してもブラウザが2重に作られたりしないでしょうか? ああ、いえ、そうじゃなくて、単に「WebViewのaddJavascriptInterfaceを使え」という意味でwebviewと書いただけです。 cordovaなら、this.appViewで組み込まれているWebViewがとれたはずです。多分、PhoneGapでも同じでしょう。

その他の回答 (1)

noname#247307
noname#247307
回答No.1

device.uuid でUUIDは取得できたと思います。deviceについて調べてみてください。 Java側の機能をJavaScriptから呼び出したい場合は、addJavascriptInterfaceを利用します。例えば、Java側に利用したい機能をクラスとして作成します。 class Hoge { public void hoge(){} } これをActivity起動時にaddJavascriptInterfaceでWebViewに登録します。 webview.addJavascriptInterface(new Hoge(), "hoge"); これでHogeインスタンスが"hoge"で登録されます。後はJavaScript側で、hoge.hoge();といった形でこれを呼び出すだけです。

kaepobc
質問者

補足

ありがとうございます。 webview.addJavascriptInterface(new Hoge(), "hoge"); のwebviewが分かりませんでした。 public class MainActivity extends DroidGap { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.clearCache(); super.loadUrl("file:///android_asset/www/index.html"); これが質問時点のソースです。 webviewを作るために WebView webView = new WebView(this); setContentView(webView); という2行を追加してもブラウザが2重に作られたりしないでしょうか? public class MainActivity extends DroidGap { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView webview = new WebView(this); setContentView(webview); webview.addJavascriptInterface(new Hoge(), "hoge"); super.clearCache(); super.loadUrl("file:///android_asset/www/index.html");

関連するQ&A

  • Java変数について

    こんにちは。Javaの初心者です。 そこそこ基礎知識もついてきたかと思いまして、初めて実用プログラムを組むことにしました。 そこで、今問題にあたってるんですが、 メソッド内にあるローカル変数に入ってる値を、メンバ変数に代入することは出来るのでしょうか? もしできるのでしたら、その方法をご教授してくだされば幸いです。 プログラムの初心者なので、勘違いしてることが多々あるかと思われますが、 ご回答の方、宜しくお願い致します。

    • ベストアンサー
    • Java
  • count(*)で取得した値をJAVAの変数に代入するには?

    SQLの話なんですが、 count(*)で取得した値をJAVAの変数に代入するには?

    • ベストアンサー
    • Java
  • JAVA変数に関して

    JAVAの勉強を始めたばかりです。変数に関して基本型と参照型とあるようですが、基本型から参照型へ変換する方法を教えてください。 たとえば int型からString型への変換 または double型からString型への変換方法を教えてください。

    • ベストアンサー
    • Java
  • クラス変数について質問

    Javaのオブジェクト指向を解説した参考書で現在勉強しているのですが、その参考書のある問題の答えの解説として「クラス変数は参照変数なので参照以外を代入できません」と書いてありました。 でも、例えば、static int n=0と書けば、0をnに代入できます。 因みに、「クラス型の変数」は参照しか代入できないのはわかっています。 よって「クラス変数」は誤植で、正しくは「クラス型変数」なのでしょうか?

    • ベストアンサー
    • Java
  • Java変数にJavascript変数を代入したい

    いつもお世話になっております。 ブラウザを閉じるときだけ走らせたいJAVAの処理があります。 そのため、JavascriptとJAVAの変数を混合させて、処理の起動条件を制御しようと思いついたのですが、 JAVAの変数にJavascriptの変数を入れることができません。 以下のソースの★の部分が分かりません。 function window.onbeforeunload() { if(((event.clientX > document.body.clientWidth) && (event.clientY<0)) || event.altKey){ var flag = 0; <%! int flag %> = flag; ★ <% if(flag == 0){ Cache cache=Cache.getInstance(); cache.clear(); } %> alert("閉じます"); } } 何か良い方法が有りましたら、御教授宜しくお願いいたします。

  • javaで取得可能な環境変数の値(モニタ解像度)をcgiの変数に代入するには?

    cgiをperlで作成しています。 クライアントの画面解像度がjavaで取得出来ることを知りました。 そこでその解像度情報をcgiの中で利用したいのですが、javaの変数の値をcgiの変数へ代入する方法がわかりません。 お分かりになる方是非ご教授下さい。 よろしくお願い致します。 追記1 画面の解像度をcgiで利用したいので、代わりの方法があればそちらもよろしくお願い致します。 追記2 cgiカテゴリでも同様の質問をしていますが、そちらは削除予定です。

  • 変数に入っている変数の値を参照したい場合には

    var a1="123"; var a2="789"; と 変数に文字が登録されている場合、 引数として、1又は2を渡し、 1の場合にはa1を 2の場合にはa2の値を 参照することは可能ですか? switchやif文を使わずに、 別の変数に、"a"+引数を代入し、 その変数に代入されている変数を参照する というようなことは可能ですか? 意味わかりますか? すみません。 よろしくお願い致します。

  • 画像をクリックして変数に値を代入

    JavaScriptで、 ある画像をクリックして変数に10という値を代入したいと思っています。 ご存知の方いらっしましたらよろしくお願いします。 (「button」などで行う方法はわかります。)

  • mixiアプリでjavascriptで取得した変数をPHP変数にするに

    mixiアプリでjavascriptで取得した変数をPHP変数にするには? いつもお世話になっております。 mixiアプリで利用者のIDを取得する方法は、 document.getElementById("id").innerHTML = id; で行うことができたのですが、これはHTML内に、   <span id="id"></span> と記載した場合のみIDが表示されるようになっています。 これをPHPの変数(例:$id)などとして扱うことはできないでしょうか? 任意の場所に<?php echo $id; ?>と書けばIDが表示される仕組みにしたいと考えています。 (最終目的としてはinputのvalueにmixiIDを代入し、次ページへ変数を渡せたいのです) <input type="hidden" name="id" value="◆◆"> ◆◆の部分にIDを代入させたいです 以上よろしくお願いいたします。

  • 変数名に変数を使う

    Flash8を使用し、ActionScript2で書いています。 変数名に、他の変数の値を参照したいと考えています。 http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=6679&forum=6 を見て、同じようにやってみました。 すると、 animal = "cat"; catlLegs = 4; とした場合、animalの値であるcatを参照し animalLegs = 4; とする、というような単純なものはうまくいきました。 しかし、SharedObjectのdataプロパティで、属性名を変数にしようとすると うまくいきません。 dataNameという変数に、soというSharedObjectのneko属性の値を代入する場合、 so:SharedObject = SharedObject.getLocal("hoge"); animal = "neko"; dataName = _root["so.data."+animal]; としたのですが、 trace(dataName); の値はundefinedになってしまいます。 なお、 trace(_root.so.data.neko); では正しく値が表示されます。 属性名前には他の変数の値を参照できないのでしょうか。 それともSharedObjectではできないのでしょうか。 なんとか実現する方法をおしえていただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • Flash

専門家に質問してみよう