2016-07-19 8 views
0

Androidアプリでモバイル(3GまたはLTE)データを使用したいと思います。 私のコードを修正してください。 java.net.socketの代わりにsocket.ioライブラリを使用します。だから、私はどのように使用するのか分からない: network.bindSocket()。 bindSocket()の場合、socket.io.Socketをjava.net.Socketに変換することは不可能であるためです。Androidアプリでのみモバイルデータを使用

connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkRequest.Builder builder = new NetworkRequest.Builder(); 

    builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); 
    builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); 
    NetworkRequest networkRequest = builder.build(); 

    connectivityManager.requestNetwork(networkRequest, new ConnectivityManager.NetworkCallback() { 
       @Override 
       public void onAvailable(Network network) { 
        connectivityManager.unregisterNetworkCallback(this); 
        boolean ret = ConnectivityManager.setProcessDefaultNetwork(network); 
       } 
      }); 

答えて

0

この機能を使用して、ネットワークの種類を取得する

パブリック文字列getNetworkClass(コンテキストコンテキスト){ TelephonyManager mTelephonyManager =(TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)。 int networkType = mTelephonyManager.getNetworkType(); スイッチ(NETWORKTYPE){ ケースTelephonyManager.NETWORK_TYPE_GPRS: 場合TelephonyManager.NETWORK_TYPE_EDGE: 場合TelephonyManager.NETWORK_TYPE_CDMA: 場合TelephonyManager.NETWORK_TYPE_1xRTT: 場合TelephonyManager.NETWORK_TYPE_IDEN: リターン "2G"。 ケースTelephonyManager.NETWORK_TYPE_UMTS: 場合TelephonyManager.NETWORK_TYPE_EVDO_0: 場合TelephonyManager.NETWORK_TYPE_EVDO_A: 場合TelephonyManager.NETWORK_TYPE_HSDPA: 場合TelephonyManager.NETWORK_TYPE_HSUPA: 場合TelephonyManager.NETWORK_TYPE_HSPA: 場合TelephonyManager.NETWORK_TYPE_EVDO_B: 場合TelephonyManager.NETWORK_TYPE_EHRPD: ケースTelephonyManager.NETWORK_TYPE_HSPAP: "3G"を返します。 ケースTelephonyManager.NETWORK_TYPE_LTE: return "4G"; デフォルト: 返信 "不明"; } }

関連する問題