Giter Site home page Giter Site logo

myphone's Introduction

My Phone

My Phone is a desktop application that allows you to link your phone (supports Android, iOS, and Windows Phone) to your Windows 10/11 PC via Bluetooth without having to install a companion app on your phone.

WinUI 3 MSIX app

Screenshot: Main Page

Screenshot: Calling UI

Features

  • Calling
  • SMS messaging
  • Phonebook access
  • Notifications

Features comparison with Phone Link (a.k.a. Your Phone)

Feature Phone Link My Phone
Calling
SMS messaging 1
Phonebook access 1
App Notifications 2
Share photos and files
Use mobile apps from PC 3
Supported mobile devices ⚠Android Only ✔Android, iOS, Windows Phone, and all Bluetooth-HFP-enabled devices
  • 1: will be implemented in v1.0 this summer
  • 2: will be implemented in the future
  • 3: only available for some selected Android devices

Implementation

Hands-Free Profile (HFP)

This app use Windows Runtime APIs: Windows.ApplicationModel.Calls , Windows.Devices.Bluetooth and Windows.Devices.Enumeration to make the HFP works.

  1. Use ``Windows.Devices.EnumerationAPI to enumerate availablePhoneLineTransportDevice` (i.e. paired Bluetooth devices that support HFP),
  2. Call PhoneLineTransportDevice.RegisterApp to register the device for HFP
  3. Call PhoneLineTransportDevice.Connect to connect to the deivice (establishes HFP Service Level Connection).
  4. Now you can receive and answer phone calls on your PC.
  5. To make phone call, use Windows.Devices.Enumeration API to enumerate available PhoneLine, then call PhoneLine.Dial

Note that Microsoft's Phone Link use the same APIs mentioned above.

The HFP stack

The above APIs have very limited functionality. They can only be only used for call control. If you need to handle raw audio stream or something else, you need to write a custom user-mode profile driver (more information here).

Actually, I did try to implement HFP stack before but eventually gave up because the MSIX package does not support installing drivers. I managed to establish the HFP Service Level Connection (SLC) and successfully make the phone call via SLC, but failed to establish SCO audio connection and transfer any audio. If you're interested in how to establish HFP Service Level Connection, you may find the source code here.

System requirement

  • Windows 10 Version 1903 (build 10.0.18362) and later

Contributing

Requirements

Build

  1. Clone repo git clone https://github.com/BestOwl/MyPhone.git
  2. Open MyPhone.sln with Visual Studio
  3. Set MyPhone as startup project
  4. Run MyPhone (Package)

myphone's People

Contributors

bestowl avatar xtremehpx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.