sriharia / sharethem Goto Github PK
View Code? Open in Web Editor NEWFile Sharing & Transfer made a lot easier
License: Apache License 2.0
File Sharing & Transfer made a lot easier
License: Apache License 2.0
@Sriharia Thank you so much for your help to learn about how share it works.It's more helpful for my project.I have only one problem now how to sent file with particular receiver.....please help me sir...
When I select files from Android version 7.1.1 , it creates hotpost after selecting files , but receiver device doesnot connect to the network , it always shows the toast "Sender Hotspot disconnected. retrying"
There is a code in receiveractivity.java
line : 448
in wifiscanner class
if (WifiUtils.isShareThemSSID(result.SSID) && (isOreoOrAbove() || WifiUtils.isOpenWifi(result))) {
Log.d(TAG, "signal level: " + result.level);
connectToWifi(result.SSID);
foundSTWifi = true;
break;
}
but with oreo device everytime that condition is not calling and skipping the part
As you mantion in description about oreo and hotspot with password stuff .That's true but can't connect with other device please reply
Hi Sri,
I have installed and tested your application from play store. it was crashing . Then i downloaded a code and found an Exception while debugging. Actually you are checking isShareThemSSID() with detected networks. In that, you are splitting ssid by "-". My wifi name is "harry-wifi" . In isShareThemSSID(), it's spits ["harry", "wifi"] and tries to decode it. there it's giving an exception.
Existing logic:
public static boolean isShareThemSSID(String ssid) {
String[] splits = ssid.split("-");
if (splits.length != 2)
return false;
String[] names = new String(Base64.decode(splits[1], Base64.DEFAULT)).split("\|");
return names.length == 3 && names[1].equals(SENDER_WIFI_NAMING_SALT);
}
**Consider the change **
public static boolean isShareThemSSID(String ssid) {
String[] splits = ssid.split("-");
if (splits.length != 2)
return false;
try {
String[] names = new String(Base64.decode(splits[1], Base64.DEFAULT)).split("\|");
return names.length == 3 && names[1].equals(SENDER_WIFI_NAMING_SALT);
} catch (Exception e) {
return false;
}
}
This will avoid crashing in your application.
Tried on android 7 and 10. Everything was working fine but when I tried to send a file, it was unable to find my receiving device! and moreover its not ready for android 10, notification function needed to change!
When I try to send files from Oreo device after selecting files when I press Ok, app crashes and gives the following error in Logcat
android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification: Notification(channel=null pri=0 contentView=null vibrate=null sound=null tick defaults=0x0 flags=0x40 color=0x00000000 vis=PRIVATE) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1797)
since api level 26 not allowed setWifiApEnabled method so unable to create a hotspot
Hey, I had a requirement, where the list of available devices would be displayed and then data would be sent to the selected device. Like shareIt, where the list of nearby devices are displayed and only when selecting a particular device, it is connected to that device.
Thanks for the really cool library. It has helped me a lot :)
Hi sri,
you are done excellent work. its very useful for me. but small modification need in your example. you are sharing file to all device.
but i need to share file by selecting the connected device. can you please help to do this in your example.
thanks!
suresh
the implementation link is not working
i sent many images , video to another device through shareThem , But file wont display in another device . it shows file cant open
Unable to access the location using runtime permission the location access is not prompted.
not able to get the SSID from the wifimanger, showing UNKNOWN SSID, need location acces
but location code is not working.
Hi Sriharia,
First of all thank you for such an amazing piece of code. Your project helped me a lot in one of my Project. However, I am having some issue on Android Nougat and Oreo devices. I am not able to enable the Hotspot on Android N and O. Kindly help me out.
Shall I do some extra coding for the same?
Create a gitter chatroom for this repository and link it accordingly.
We can discuss about the model used in SHAREthem and to make things more efficient!
Is there anyway to send Pojo via Sharethem ?
Connection between the devices is successful. For transferring data from the server to the client, I am using the below code:
public static String downloadDataFromSender(String apiUrl) throws IOException {
InputStream is = null;
try {
URL url = new URL(apiUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.connect();
conn.getResponseCode();
is = conn.getInputStream();
return readIt(is);
} finally {
if (is != null) {
is.close();
}
}
}
But I keep getting the following error:
java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:343)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:205)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:187)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
at java.net.Socket.connect(Socket.java:586)
at com.android.okhttp.internal.Platform.connectSocket(Platform.java:113)
at com.android.okhttp.Connection.connectSocket(Connection.java:196)
at com.android.okhttp.Connection.connect(Connection.java:172)
at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:367)
at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:130)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:329)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:126)
at com.wifiscanner.utils.DownloadUtils.downloadDataFromSender(DownloadUtils.java:27)
at com.wifiscanner.tasks.SenderAPITask.doInBackground(SenderAPITask.java:29)
at com.wifiscanner.tasks.SenderAPITask.doInBackground(SenderAPITask.java:14)
at android.os.AsyncTask$2.call(AsyncTask.java:304)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
The connection is successful as I said. So not sure why I am getting network is unreachable. This happens intermittently and not always. It retries and after 3 or 4 times it is successful. Sometimes after 15 tries it is successful. Not sure why.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.