Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nearby-Sharing-Mac #1

Open
electr1fy0 opened this issue Dec 13, 2022 · 21 comments
Open

Nearby-Sharing-Mac #1

electr1fy0 opened this issue Dec 13, 2022 · 21 comments
Labels
question Further information is requested

Comments

@electr1fy0
Copy link

electr1fy0 commented Dec 13, 2022

Issue to track the development of this app for macOS

@ShortDevelopment
Copy link
Member

ShortDevelopment commented Dec 13, 2022

There’s no ETA yet, but I definitely plan to port to different platforms in the future!

I’m currently building a custom cross-platform implementation with c# (See main branch).

For a rough schedule:

  1. Allow receiving data from PC android#8
  2. Custom send implementation android#21
  3. Other platforms!!

@ShortDevelopment ShortDevelopment added the question Further information is requested label Dec 13, 2022
@prenfic
Copy link

prenfic commented Jan 18, 2023

Persistently wait for the macOS version as well (smile)
But literally take your time, gentleman, I have got used to the cleavage of android and macOS, quite hoping there is an unique way to send and receive between win and macOS and android

@electr1fy0
Copy link
Author

There is Soduto and KDE Connect which works perfectly.
For M1, you could check some of the forks.

@electr1fy0
Copy link
Author

That being said, I'm hoping this project builds up to being a modern alternative to KDE Connect platform which I believe (could be wrong) uses older stuff.

@ShortDevelopment
Copy link
Member

ShortDevelopment commented Jan 18, 2023

I really appreciate your ideas and trust in this project, but you have to think of a view things:

  • I’m doing this on my own in my free time
  • This project is meant to bring the Windows 10 / 11 “Nearby Sharing” component to other platforms (mainly Android!)
  • I’m going to stick to the Microsoft Specs of the underlying protocol of the “Connected Devices Platform”
  • I neither have a Mac nor do I have experience developing for Apple platforms

This means that…

  • I would need someone with experience with Mac / iOS and .Net / c# to do development and testing with / for me
  • In the near future only file / url transfer will be possible

The CDP provides additional capabilities we can and (hopefully) will use, but for now I have to finish the Android implementation.
That does not mean it won’t happen, but rather that I need help and time…

@ShortDevelopment
Copy link
Member

I'm currently trying to apply for the Macstadium open source program but that seems to be on hold for now...

@ShortDevelopment
Copy link
Member

There is now a working cross-platform implementation of the Ms-NearShare Protocol in the master branch.
From here I "just" need someone who would like to create a UI and basic Bluetooth-PAL implementation for MAC using Xamarin.Mac (or MAUI if you can get Rfcomm to work with MacCatalyst)

@electr1fy0
Copy link
Author

electr1fy0 commented Apr 3, 2023

I am unable to help you with development on macOS but I can for sure test things.

I'll also suggest you to build this app as a Menu Bar app for macOS which is the right place for utility kinds of apps.
AFAIK, it's also easier to do Menu Bar apps for macOS.

Also, I use Android.

@electr1fy0 electr1fy0 changed the title Any plans on Nearby-Sharing-Mac? Nearby-Sharing-Mac Apr 3, 2023
@ShortDevelopment ShortDevelopment transferred this issue from nearby-sharing/android Jun 26, 2023
@ShortDevelopment
Copy link
Member

Mac support will initially only come as a cross-platform cli (In this new repo).
This is still work in progress and will only support network transport for now (no bluetooth).

@ShortDevelopment
Copy link
Member

You can now test a very early version for mac / linux:
https://cdn.shortdev.de/NearShare/macos/NearShare
https://cdn.shortdev.de/NearShare/linux/NearShare

Warning
It's a cli so you have to run it from the terminal!

@electr1fy0
Copy link
Author

electr1fy0 commented Jun 30, 2023

image

Can't be discovered yet from the phone.

@ShortDevelopment
Copy link
Member

@electr1fy0
There is currently no Bluetooth support.
Make sure that you use the preview version on your phone and that both devices are on the same network.

@electr1fy0
Copy link
Author

Yes, they are on the same Wi-Fi.

@ShortDevelopment
Copy link
Member

@electr1fy0

  • You can't send from Windows to Cli, because Windows does not advertise via Udp (it only discovers)
  • Only the latest beta version does advertise via Udp.

@electr1fy0
Copy link
Author

I was trying to send from Android to macOS

@sidevesh
Copy link

sidevesh commented Mar 7, 2024

@electr1fy0

  • You can't send from Windows to Cli, because Windows does not advertise via Udp (it only discovers)
  • Only the latest beta version does advertise via Udp.

@ShortDevelopment is not being able to send from Windows to Cli a temporary thing or is that just not possible ?
I see that the android app can receive from Windows in Receive mode so not sure if I understand why the cli can't receive too.

@ShortDevelopment
Copy link
Member

The MS-CDP protocol is transport agnostic and supports (non-exhaustive) Tcp (Network) and Rfcomm (Bluetooth Classic).

The CLI currently only supports Tcp because a TcpListener is directly build into .NET and Tcp is available on all platforms.
As the Windows implementation (controlled by Microsoft) does not advertise itself via Udp (Network), the cli cannot receive from Windows.

This could be fixed by implementing a cross-platform Rfcomm (Bluetooth classic) transport into the cli.
Rfcomm is supported by Windows, Linux, Android and MacOs but not by iOS.

So someone has to write an implementation for Rfcomm and Ble (For advertisement) for every platform.
Maybe, we could use inthehand/32feet for that.
But I still don't (and won't) have a Mac for testing.

=> For most platforms, this is just a temporary issue.

@sidevesh
Copy link

sidevesh commented Mar 7, 2024

ah got it, thanks for the explanation! I have been looking for some cross platform p2p over network file sharing solution that can be supported seamlessly across all platforms (I am not looking at iOS though, given how restrictive and closed down it is).
Nearby Share by Google (now Quick Share) was a good candidate with OSS implementations for Linux and macOS,
but it can never support sending from macOS due to the macOS BLE api lacking,
if Nearby Sharing will not have this limitation then this would be the ideal candidate for a good cross platform solution.

@ShortDevelopment
Copy link
Member

I fear we got the same problem here ... I'll further investigate this.

For reference: grishka/NearDrop#91

@sidevesh
Copy link

sidevesh commented Mar 7, 2024

that's not good :/
But looks like Google's Nearby Share is preparing to work around this limitation,
wasn't aware of that development, thanks for sharing the link 👍

@ShortDevelopment
Copy link
Member

@electr1fy0

Can't be discovered yet from the phone.

Sry, that it took so long. There was an issue with the size of the PresenceResponse message (I tagged you in the issue).
You sould be able to use the same link I provided above to download a working version.
I got it to work with a MacOS-VM and my Android phone.

Still no windows receive support though...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

4 participants