Jump to content

Join Beta


Perks
 Share

Recommended Posts

O developer de algumas das mais populares extensões para o Tasker auto apps (sim ele é tuga) na ressaca do pushbullet lançou uma app que emula muito do comportamento, com umas vantagens extra na minha opinião como por exemplo dos pushes irem para o drive em vez de serem armazenados 

 

 

 

Quote

 

Join (pun intended) the beta test here.

Download the Chrome Extension here.

It’s an AutoRemote-like standalone app (yes, it’s NOT a Tasker plugin  ).

The idea of join is to bring all your devices together and easily exchange anything between them.

On this first beta release you can already do a bunch of stuff, but more is planned. For now you can:

  • Paste your PC clipboard on your Android device, writing the text directly, and not just keep it on your clipboard
  • Paste your Android device’s clipboard on any other Android device or PC with a handy floating bubble menu

bubble copy

 

  • Send SMS messages from your PC
  • Send links from any device to any device
  • Send files from any device to any device
  • Take a screenshot on your device and open it on your PC
  • Google drive integration: join doesn’t keep any of your pushes: it’s all safely kept on your personal Google Drive account so you can manage it (and delete it) whenever you want
  • Use the join icon in Chrome to bring up your devices or…
  • Handy Keyboard shortcuts in the Chrome extension:
    • Ctrl+Shift+K will show a popup with your devices where you can execute a command
    • Ctrl+Shift+L will execute the last used command on the last used device. So, for example, if the last thing you did was send your clipboard to your Nexus 6, using this will send the current clipboard again to your nexus 6
  • Easily use multiple accounts or let your loved ones join in on the action with the device share feature
  • Easily send content from anywhere you can make an HTTP connection with the easy to use Join API: long press a device in the Android app to generate a URL you can use.
  • Trigger Tasker tasks with the built-in AutoApps integration

I’m sure I forgot something 

And I’m just getting started. With your feedback I can add more and more remote functionality in Join.

Hope you enjoy the beta!

If you want to leave feedback you can do so on our forums or Google+ community!

Join in!

 

testem que vale a pena, embora eu já tenha isto tudo através do tasker, é um facto que é mais simples assim

Já agora, dexem-me só avisar que é grátis para já em beta, depois a app deverá ter um preço de 1.5USD

  • Like 2
Link to comment
Share on other sites

2 hours ago, Lancer said:

 

monetizing happened

 

@Perks

isso vai ter client de windows ou só funciona por extensão do chrome?... uso o opera :x

Opera duvido muito,  de qualquer forma tudo o que fazes com isto e muito mais podes fazer com o autoremote juntar o eventghost e ficas com algo mais poderoso 

Isto é uma mistura das auto apps menos geeky digamos assim  

Link to comment
Share on other sites

17 hours ago, Perks said:

Opera duvido muito,  de qualquer forma tudo o que fazes com isto e muito mais podes fazer com o autoremote juntar o eventghost e ficas com algo mais poderoso 

Isto é uma mistura das auto apps menos geeky digamos assim  

tens links para tutorials disso? :P

Link to comment
Share on other sites

  • 1 month later...

E a feature que faltava @Mini0n @Lancer

 

Quote

New Join beta with end-to-end encryption :)

You set the password on each of your devices and private content will be encrypted before it leaves the device and only decrypted when it reaches the other device.

If you want to get technical, I'm using PBKDF2 to store the password securely and AES to encrypt content.

If you want to get REALLY technical, here's the code I used to encrypt and decrypt stuff in both Java (Android App) and javascript (chrome extension)

Java:

   public static String getHashedPassword(String password, String salt) throws NoSuchAlgorithmException, InvalidKeySpecException {
        if (isEmpty(password)) {
            return null;
        }
        SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
        KeySpec spec = new PBEKeySpec(password.toCharArray(), salt.getBytes(), 1000, 256);
        SecretKey tmp = factory.generateSecret(spec);
        SecretKey key = new SecretKeySpec(tmp.getEncoded(), "AES");
        return Util.toBase64(key.getEncoded());
    }


    public static String encryptWithIv(String str, String hashedPasswordBase64) throws NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeyException, UnsupportedEncodingException, BadPaddingException, IllegalBlockSizeException {
        if (isEmpty(str) || isEmpty(hashedPasswordBase64)) {
            return str;
        }
        SecretKey key = new SecretKeySpec(Util.fromBase64(hashedPasswordBase64), "AES");
        byte[] ivBytes = new byte[16];
        new Random().nextBytes(ivBytes);
        String ivBase64 = Util.toBase64(ivBytes);
        AlgorithmParameterSpec iv = new IvParameterSpec(Util.fromBase64(ivBase64));
        Cipher cipher = getIvCipher();
        cipher.init(Cipher.ENCRYPT_MODE, key, iv);
        String encrypted = ivBase64 + "=:=" + Util.toBase64(cipher.doFinal(str.getBytes("UTF-8")));
        return encrypted;
    }

public static String decryptWithIv(String str, String hashedPassword) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidAlgorithmParameterException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException, UnsupportedEncodingException {
        if (isEmpty(str) || isEmpty(hashedPassword)) {
            return str;
        }
        String[] split = str.split("=:=");
        if (split.length != 2) {
            return str;
        }
        String ivBase64 = split[0];
        String encryptedText = split[1];
        SecretKey key = new SecretKeySpec(Util.fromBase64(hashedPassword), "AES");
        AlgorithmParameterSpec iv = new IvParameterSpec(Util.fromBase64(ivBase64));
        Cipher cipher = getIvCipher();
        cipher.init(Cipher.DECRYPT_MODE, key, iv);
        byte[] data = cipher.doFinal(fromBase64(encryptedText));
        return new String(data, utf8);
    }

javascript:

var encryptString = function(text, password){
    if(!password){
        password = localStorage.encryptionPassword;
    }
    if(!password){
        return text;
    }
    var key = CryptoJS.enc.Base64.parse(password);
    var iv = CryptoJS.lib.WordArray.random(16);
    var ivBase64 = CryptoJS.enc.Base64.stringify(iv);
    var encrypted = CryptoJS.AES.encrypt(text, key, {iv: iv});
    var encryptedText = encrypted.toString();
    var finalString = ivBase64 + "=:=" + encryptedText
    return finalString;
}

var decryptString = function(value, key256Bits){
    if(!localStorage.encryptionPassword){
        return value;
    }
    if(!key256Bits){        
        key256Bits = CryptoJS.enc.Base64.parse(localStorage.encryptionPassword);
    }
    var separatorIndex = value.indexOf("=:=");
    if(separatorIndex>0){
        var split = value.split("=:=");
        if(split.length==2){
            var iv = CryptoJS.enc.Base64.parse(split[0]);
            var encrypted = CryptoJS.enc.Base64.parse(split[1]);                     
            var decrypted = CryptoJS.AES.decrypt({ ciphertext: encrypted },key256Bits, { mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, iv: iv});
            var decryptedString = CryptoJS.enc.Utf8.stringify(decrypted);
            if(decryptedString && decryptedString.length>0){
                return decryptedString;
            }
        }
    }
    return value;
}

If any security expert wants to chime in I would gladly revise any less secure part (within reason of course :D)

Let me know how it works for you!

https://plus.google.com/+JoãoDias/posts/7QBLP9yzYx4

 

  • Like 1
Link to comment
Share on other sites

Epah vou ser sincero, instalei isto mas ainda não abri a app lol

Uso o Pushbullet que continua a fazer-me o que eu fazia, que é mandar links do Smartphone para o PC (ou para outro Smartphone)...

A ver se um dia destes testo isto.

Link to comment
Share on other sites

Eu tenho os dois, mas apenas por causa do canal do pushbullet

Mas este é infinitamente melhor, mesmo

Por exemplo, para enviar sms do tablet abro no chrome o meu url com a conta Google, nem app é preciso, o gajo fez um trabalho do caraças nisto

E7G39mW.jpg

 

 

Tens um url onde podes interagir com o telefone apenas com um http request, tem pormenores muito bons mesmo

 

Podes partilhar o teu device de forma a que outra conta possa usá-lo exactamente como tu

Link to comment
Share on other sites

palpita-me que será mais problema da firewall que tens no pc que de outra coisa qualquer

 

eu tenho no trabalho e em casa sem o mínimo stress, e duvido muito que no teu trabalho tenhas tantas restrições como eu

 

aliás se recebes notificação do chrome que usa o GCM não deverá ser das portas mesmo 

Link to comment
Share on other sites

ja experimentei a app mas shared notifications acabaram por ser tornar mais irritantes do que uteis.. :\

de cada xs que recebo 1 skype message aparece a notification no desktop tb.. >.>

 

posso estar a fazer algo mal

gosto mais deste do que do pushbullet, mas o push uso só para receber notificações de updates do chroma rom  :|

 

offtopic: @Perks o tasker em android M n está a funcionar lá muito bem pois n?

Link to comment
Share on other sites

podes definir as apps que queres ter notificações

 

o tasker no m no meu caso está a funcionar bem, mas sei que por causa do doze existe uma setting "reliable alarms" por causa da app entrar em modo doze

tenta seleccionar isso

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.