1. 程式人生 > >android app通過Geth RPC介面實現遠端呼叫

android app通過Geth RPC介面實現遠端呼叫

記錄一下APP怎麼通過以太坊的RPC介面實現遠端呼叫。此過程的環境為Window7和Android studio2.2.3。以web3_clientVersion為例。更多用法參考Geth JSON-RPC和Management APIs。首先啟動geth私有鏈並設定RPC埠

geth --identity “blossom” --rpc --rpccorsdomain “*” --datadir “%cd%” --port “30303” --rpcapi “personal,db,eth,net,web3,miner” --networkid 66666 --rpcport 8545 console 2>geth.txt

Android studio新建專案並新增.jar包。jar包下載

佈局如下:

<Buttonandroid:id="@+id/showView"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="getBlock"/><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/textview"/>

MainActivity如下:

package com.ethereum;

import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.TextView;

import org.alexd.jsonrpc.JSONRPCException;import org.alexd.jsonrpc.JSONRPCHttpClient;

import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

privateButton showButton;privateTextView textview;publicstaticfinalint SHOW =0;privateHandler handler =newHandler(){publicvoid handleMessage(Message msg){switch(msg.what){case SHOW:String a =(String) msg.obj;
                textview.setText(a);}}};[@Override](/user/Override)protectedvoid onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textview=(TextView)findViewById(R.id.textview);
    showButton =(Button) findViewById(R.id.showView);
    showButton.setOnClickListener(this);}[@Override](/user/Override)publicvoid onClick(View v){if(v.getId()== R.id.showView){
        show();}}privatevoid show(){newThread(newRunnable(){[@Override](/user/Override)publicvoid run(){try{String url ="http://10.0.2.2:8545";JSONRPCHttpClient client =newJSONRPCHttpClient(url);Map<String,Object> map =newHashMap();List paramsList =newArrayList();
                map.put("json-rpc","2.0");
                map.put("method","web3_clientVersion");
                map.put("params", paramsList);
                map.put("id","67");String st = client.callString("web3_clientVersion", map);Message msg =newMessage();
                msg.what =SHOW;
                msg.obj = st;
                handler.sendMessage(msg);}catch(JSONRPCException e){
                e.printStackTrace();}}}).start();}

}

新增許可權:

<uses-permission android:name="android.permission.INTERNET"/>

點選Button以後結果:1488427504.png

相關推薦

android app通過Geth RPC介面實現遠端呼叫

記錄一下APP怎麼通過以太坊的RPC介面實現遠端呼叫。此過程的環境為Window7和Android studio2.2.3。以web3_clientVersion為例。更多用法參考Geth JSON-RPC和Management APIs。首先啟動geth私有鏈並設定RPC埠

【區塊鏈】Android通過Geth RPC介面實現接入以太坊私有鏈

Android通過Geth RPC介面實現接入以太坊私有鏈 環境:mac os & android studio 一、啟動私有鏈 搭建方法見 here 啟動並設定RPC埠: geth --identity "linoy" --rpc -

通過 open falcon 的 agent 的http 介面實現遠端系統命令呼叫

open falcon 的 agent 元件是一個比較綜合的採集客戶端,詳情可參考官方文件,此處不一一贅述,只是介紹以下如何開啟其遠端命令呼叫介面。 1 下載 open falcon 原始碼 該專案是go語言實現,我是通過 PyCharm 安裝 go 外掛,

高速資料採集卡,HS5、HS6如何通過樹莓派平臺實現遠端高速資料採集

隨著網際網路的發展,移動資料傳輸,遠距離測試,多系統級聯測試等新的測試構架使傳統資料採集卡整合的PCI,USB匯流排顯得力不從心,只有少數廠商能通過自己強大的整合能力,才能在現有的產品上完成類似專案,但是成本壓力使這個市場急需一個能解決新產品方案。HS5、HS6本身是USB高速資料採集卡,具

Android App開機自動啟動的實現

暮鼓集    行走集 原作於2014年01月28日 在開發Android行業應用過程中,常會要求App在系統開機時可以自動啟動。這裡,我將實現方法和遇到的一些問題總結於下文。 一. 實現 繼承一個BroadcastReceiver用來處

RPC入門總結(三)RMI+Zookeeper實現遠端呼叫框架

一、RMI的弊端 RMI是侷限於Java語言中的RPC框架,除了其語言侷限之外,其實現上還有其他的一些弊端。 1. RMI的I/O模型使用BIO模型(偽非同步I/O),使用BIO和執行緒池的方式在大資料量、多連線情況下存在效能瓶頸。 2. RMI 使用了 Java 預設的

Odoo(OpenERP)開發實踐:通過XML-RPC介面訪問Odoo資料庫

Odoo(OpenERP)伺服器支援通過XML-RPC介面訪問、操作資料庫,基於此可實現與其他系統的互動與整合。 本文是使用Java通過XMLRPC介面操作Odoo資料庫的簡單示例。本例引用的jar包包括xmlrpc-common-3.1.3.jar, xmlrpc-cli

Android TV PAI功能的介面實現

最近專案中要實現google 提供的介面功能,即PAI(play auto install) 什麼是PAI PAI是一種自帶下載安裝APK到android系統上的一種機制。這種機制對於OEM定製是非常重要的。 我瞭解到的一般有兩種,即android手機和andr

Dubbo實現遠端呼叫介面

1. Dubbo框架的簡單格式如下如所示: 1)提供了一個api包,用於標出provider提供的所有介面名稱; 2)提供一個provider(生產者)包,用於實現所有的介面,並可以註冊到zookeeper上,統一管理; 3)提供一個consumer(

myeclipse實現Servlet例項(3) 通過繼承HttpServlet介面實現

(1) 在軟體公司 90%都是通過該方法開發. //在HttpServlet 中,設計者對post 提交和 get提交分別處理   //回憶 <form action="提交給?" method="post|get"/>,預設是get (2)小結 get 提交

Android APP通過藍芽耳機錄音可行性分析

1 藍芽的兩種型別 部署最為普遍的兩種規格為藍芽基礎率/增強資料率 (BR/EDR)(採用版本為 2.0/2.1)和低耗能 (LE) 藍芽(採用版本為 4.0/4.1/4.2)。 存在哪些差異? 藍芽 BR/EDR—可建立相對較短距離的持續無線連線,因此非

通過COM元件方式實現java呼叫C#寫的DLL檔案 轉

    最近一段時間單位在做一個Web專案,工程師用JAVA語言,需要公用人員資訊,統一使用者名稱和密碼,原有的平臺中是用C#語言開發的,在網上查詢解決方法,通過JAVA呼叫C#的DLL檔案實現。網上資料很多,自己整合總結了一下,做個備忘。 一、C#寫com元件 開發環境

android studio裡gradle3.0以上實現jni呼叫

gradle3.0以上進行jni呼叫的時候和之前的版本會略有不同 首先第一步: 首先新建一個工程, 我的工程目錄如下:   我本地使用的gradle版本:   app的build.gradle內容如下所示: android { apply

springcloud 通過Fegin 完成介面編寫和呼叫

1: 2: package com.atguigu.springcloud.service; import com.atguigu.springcloud.entities.Dept; import org.springframework.cloud.n

## SpringBoot Dubbo Zookeeper 實現遠端呼叫

首先我們來了解dubbo+zookeeper是個什麼東西吧? Dubbo是 阿里巴巴公司開源的一個高效能優秀的服務框架,使得應用可通過高效能的 RPC 實現服務的輸出和輸入功能,可以和 Spring框架無縫整合。 ZooKeeper是一個分散式的,開放原始碼的

客戶端負載均衡器 Ribbon 整合Eureka實現遠端呼叫

Ribbon介紹 Ribbon是Netflix公司開源的一個負載均衡的專案(https://github.com/Netflix/ribbon),它是一個基於HTTP、TCP的客戶端負載均衡器。   什麼是負載均衡? 負載均衡是微服務架構中必須使用的技術,通過負載均衡來實

Hessian實現遠端呼叫

       Hessian是一個輕量級的remoting on http工具,採用的是Binary RPC協議,所以它很適合於傳送二進位制資料,同時又具有防火牆穿透能力。Hessian一般是通過Web應用來提供服務,因此非常類似於平時我們用的WebService。只是它

利用匿名管道實現遠端呼叫CMD

在一個程序裡用雙管道來回顯,程式碼如下: #include "windows.h" #include "stdio.h" unsigned long WINAPI readFuc(void *p); HANDLE hReadPipeCmd = NUL

WebService技術總結(三):專案實戰——使用XML,dom4j,Xpath實現遠端呼叫

XML具有跨平臺性,在企業webservice開發中, 經常將請求引數封裝為XML,並且返回一個XML作為結果。 需求: 客戶端將發票號碼,發票程式碼作為條件,呼叫服務端,查詢金額,稅額資訊 客戶端請求引數xml形式: <?xml version="

Storm系列(五)DRPC實現遠端呼叫

Trident簡介 Trident擁有一流的抽象,可以讀取和寫入有狀態的來源。狀態可以是拓撲的內部 - 例如,儲存在記憶體中並由HDFS支援 - 或者外部儲存在Memcached或Cassandra等資料庫中。在任何一種情況下,Trident API都沒有區別。 Trident以容錯的方式管理狀態