アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (2件)

>webviewを作るために


>WebView webView = new WebView(this);
>setContentView(webView);
>という2行を追加してもブラウザが2重に作られたりしないでしょうか?

ああ、いえ、そうじゃなくて、単に「WebViewのaddJavascriptInterfaceを使え」という意味でwebviewと書いただけです。

cordovaなら、this.appViewで組み込まれているWebViewがとれたはずです。多分、PhoneGapでも同じでしょう。
    • good
    • 0

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();といった形でこれを呼び出すだけです。

この回答への補足

ありがとうございます。
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");

補足日時:2014/07/01 10:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!