All Projects → Sriharia → Sharethem

Sriharia / Sharethem

Licence: apache-2.0
File Sharing & Transfer made a lot easier

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Sharethem

Upribox
Usable Privacy Box
Stars: ✭ 153 (-15.47%)
Mutual labels:  wifi-hotspot
Mili
Mili is an open source tool for auto login hotspot pages! (MacOS + Linux)
Stars: ✭ 162 (-10.5%)
Mutual labels:  wifi-hotspot
Peardownloader.js
一个支持多协议、多源、混合P2P-CDN的下载器
Stars: ✭ 170 (-6.08%)
Mutual labels:  p2p
P2p Cdn Sdk Javascript
Free p2p cdn github javascript sdk to reduce video streaming costs of live and on demand video using webrtc by upto 90% and improve scalability by 6x - 🚀 Vadootv 🚀
Stars: ✭ 158 (-12.71%)
Mutual labels:  p2p
Pikachu Volleyball P2p Online
Pikachu Volleyball peer-to-peer online via WebRTC data channels
Stars: ✭ 160 (-11.6%)
Mutual labels:  p2p
Spitfire
An easy to use WebRTC Datachannels library for .NET applications.
Stars: ✭ 164 (-9.39%)
Mutual labels:  p2p
Meshenger Android
P2P Audio/Video calls over local networks. No server or Internet access needed.
Stars: ✭ 152 (-16.02%)
Mutual labels:  p2p
Torrent Discovery
Discover BitTorrent and WebTorrent peers
Stars: ✭ 177 (-2.21%)
Mutual labels:  p2p
Diztl
Share, discover & download files in your network 💥
Stars: ✭ 162 (-10.5%)
Mutual labels:  p2p
Unstoppable Wallet Android
A secure and decentralized Bitcoin and other cryptocurrency wallet for Android phones. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 165 (-8.84%)
Mutual labels:  p2p
Py Ipv8
Python implementation of the IPv8 layer
Stars: ✭ 157 (-13.26%)
Mutual labels:  p2p
P2pt
Simple WebRTC Peer 2 Peer connections using WebTorrent trackers as the signalling server. Use WebTorrent trackers for any kind of WebRTC app ! 🔥 Make WebRTC apps fast & easy ! 🚀⭐
Stars: ✭ 159 (-12.15%)
Mutual labels:  p2p
Torrentpier
Main project repository
Stars: ✭ 166 (-8.29%)
Mutual labels:  p2p
Tcpchat
Multi user client-server voice chat, with elements of P2P
Stars: ✭ 153 (-15.47%)
Mutual labels:  p2p
Luminance
Stars: ✭ 173 (-4.42%)
Mutual labels:  p2p
Webrtc Qr
WebRTC Connect Experiment - https://aquigorka.com/webrtc-qr/
Stars: ✭ 154 (-14.92%)
Mutual labels:  p2p
Rapidbay
Self-hosted torrent video streaming service compatible with Chromecast and AppleTV deployable in the cloud
Stars: ✭ 163 (-9.94%)
Mutual labels:  p2p
Unstoppable Wallet Ios
A secure and decentralized Bitcoin and other cryptocurrency wallet for iPhone. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 180 (-0.55%)
Mutual labels:  p2p
Dottorrent Gui
An advanced GUI torrent file creator with batch functionality, powered by PyQt and dottorrent
Stars: ✭ 175 (-3.31%)
Mutual labels:  p2p
Bt
BitTorrent library and client with DHT, magnet links, encryption and more
Stars: ✭ 2,011 (+1011.05%)
Mutual labels:  p2p

SHAREthem

App_Icon

SHAREthem library facilitates P2P file sharing and transfers between devices using WiFi Hotspot.
Also an attempt to simulate popular SHAREit App functionality and improvise it by supporting multiple receivers at one go

Library also supports App (Android) to Web/Mobile Browser transfers if Receiver has no App installed.

Download the Working version from Play Store

[![PlayStore][playstore-image]][playstore-url] [playstore-image]: screens/google-play-badge.png [playstore-url]: https://play.google.com/store/apps/details?id=com.tml.sharethem.demo

Developed by

Srihari Yachamaneni (@srihari_y)

Features

  • File transfers and sharing.
  • Supports downloads on Browser if Receiver has no App installed.
  • Easy to Implement.
  • No permissions required. (library handles them based on targetSdkVersion)

Usage

UPDATE

Added Android-8, OREO support with default Android Hotspot functionality which comes with password protected Hotspot and so Receiver has to explicitly key-in password, inline with SHAREit functionality.

SHARE mode

To start SHARE mode, you need to pass an array of strings holding references of files you want to share along with port(optional) and sender name using an Intent to start SHAREthemActivity

Intent intent = new Intent(getApplicationContext(), SHAREthemActivity.class);
intent.putExtra(ShareService.EXTRA_FILE_PATHS, new String[]{[path to file1], [path to file2]}); // mandatory
intent.putExtra(ShareService.EXTRA_PORT, 52287); //optional but preferred. PORT value is hardcoded for Oreo and above since it's not possible to set SSID with which port info can be extracted on Receiver side.
intent.putExtra(ShareService.EXTRA_SENDER_NAME, "Sri"); //optional. Sender name can't be relayed to receiver for Oreo & above
startActivity(intent);

ShareService.EXTRA_FILE_PATHS: holds location references to local files on device.

ShareService.EXTRA_PORT (optional): in case you want to start SHAREserver on a specific port. Passing 0 or skipping this lets system to assign its own. One of the downside of letting system to do this is SSID may be not the same for a subsequent Sharing session. (PORT number is used in algorithm to generate SSID)

ShareService.EXTRA_SENDER_NAME (optional): used by Receiver to display connection information.

Receiver mode

Starting receiver mode is pretty simple as no intent extras needed. Receiver Activity starts scanning for senders automatically, you can turn off Receiver mode anytime though.

startActivity(new Intent(getApplicationContext(), ReceiverActivity.class));

End with an example of getting some data out of the system or using it for a little demo

Read more about implementation on my blog here

DEMO Built With

IMPORTANT NOTE

  • increasing targetSdkVersion version might impact behaviour of this library
    1. if targetSdkVersion >= 23
      • ShareActivity has to check for System Write permissions to proceed
      • Get Wifi Scan results method needs GPS to be ON and COARSE location permission.
    2. library checks the targetSdkVersion to take care of above scenarios if targetSdkVersion > 20
    3. If an application's targetSdkVersion is LOLLIPOP or newer, network communication may not use Wi-Fi even if Wi-Fi is connected with no interner. this might impact when Receiver connectivity to SHAREthem hotspot, library checks for this scenario and prompts user to disable data For more info: https://developer.android.com/reference/android/net/wifi/WifiManager.html#enableNetwork

Troubleshooting

Receiver Connected but not able to display Sender info:

As mentioned above, on API level 21 & above, n/w communication may not use Wifi with no internet access if MOBILE DATA has internet access. Library can prompt to disable MOBILE DATA if this scenario is met, but not yet implemented. So turn-off mobile to make Receiver work.

ReceiverActivity cannot connect to SHAREthem Wifi:

Receiver tries to connect to SHAREthem Wifi in every way possible, but throws an error dialog if it fails. Dialog says to manually select SHAREthem Wifi on WIfi Settings. As a last resort, you can always manually connect to Sender Wifi.

Known Issues

  • On some devices with API level 21 and above, connectToOpenHotspot() method on WifiUtils disables other Wifi networks in-order to connect to SHAREthem WIfi Hotspot. Ideally increasing priority should be enough for making WifiConfiguration but recent Android version are making it hard for Wifi n.ws with no internet connectivity.
  • Enabling SHARE mode when System Wifi Hotspot is already active (enabled by user via Settings) might not work.

Screenshots

Demo Activity File explorer SHAREthem Activity SHAREthem Service Notification Receiver Activity Android Download Manager Notification Web Receiver

License

Copyright 2017 Srihari Yachamaneni

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

see the LICENSE.md file for details

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].