This FAQ is currently focused on the new (for beta 53)
play-via-SMS feature.
- Permissions
- Play via SMS
- Play via the "relay"
- Other
What permissions does Crosswords require and why/how are they used?
You might wonder why a simple word game is requesting some of the
more exotic permissions. Here's why.
- Your messages/read SMS or MMS; receive SMS: When
play via SMS is enabled, Crosswords looks at every incoming SMS
message to see if it is from Crosswords on another device. If it
is, the message is removed so that the usual SMS app doesn't
try to display it.
- Your personal information/read contact data: When
you are inviting someone to play a game via SMS and press the
"Import contact" button Crosswords scans your contacts.
And when you receive an invitation to play via SMS Crosswords tries
to look up the name associated with the number that sent the
invitation in order to display a more useful message.
- Storage/modify/delete USB storage contents:
Crosswords gives you the option of storing downloaded wordlists to
External storage (your phone's SD card), and supports being
installed there as well. Unless you use one of these options your
External storage is not touched.
- Services that cost you money/send SMS messages: When
play via SMS is enabled and you start a game via SMS, the initial
invitation and all moves will be transmitted as specially encoded
SMS messages (instead of via your phone's cellular or wifi internet
connection.) No SMS messages are sent unless you explicitly
enable the feature and confirm that you have an unlimited texting
plan.
- System tools/prevent phone from sleeping: This is
required to support the option, which is disabled by default, of
leaving the screen on for up to 10 minutes while you're
searching for a move.
What if I don't have an unlimited SMS/texting plan?
Go ahead and install Crosswords, but don't enable the SMS feature.
That feature is off by default, and you can't turn it on without
confirming that you have unlimited texting. Until you enable that
feature Crosswords will not send any SMS messages.
What are the Services that can cost you money the Google
Play installer warns me about?
Google is warning you that this version of Crosswords has the
ability to send SMS messages, which can cost you money depending on
your cellular plan. I won't actually send any unless you turn the
feature on, and you won't do that unless you have unlimited texting,
but Google can't know that and so they have to warn you.
(Starting with Android 6.0 [Marshmallow] Google allows you to grant
individual permissions one by one to apps you install, so you will be
able to say, for example, "Let this app access the internet but
don't let it send SMS messages." Using this new model requires
extensive changes and introduces lots of opportunities to crash the
app, but I'm working on it.)
How does play via SMS work
Any Android app with the right permissions can get first crack at
all SMS messages coming into your phone. So Crosswords encodes all its
communication with other phones as special SMS messages that it then
looks for and intercepts on the other side. That's why when you try to
start a game with someone who does not have Crosswords installed he
will see a strangely formatted message in her Messaging inbox.
Why might I want to play via SMS instead of the old way?
- It doesn't use your data plan as much -- a good thing if your
data's limited and your texting isn't.
- Moves get to the other device faster.
- It uses less battery. (That's because making a network
connection to check the relay for new moves takes more
power than waiting for an SMS message -- which your phone is already
doing.)
- It's easier to start a game -- because you already have your
friends' phone numbers handy.
My phone says Crosswords is trying to send too many SMS messages. Wassup?
That's due to a bug (at least in my opinion) in the Ice Cream
Sandwich and Jelly Bean versions of Android. They track how many SMS
messages each app has sent, and as soon as one app has sent more than
100 in an hour you get asked to confirm EVERY SINGLE ONE that app
sends. (Why they couldn't just get you to confirm the first, or
remember that you've said it's ok, is beyond me.) Anyway, you have
three choices: keep clicking OK; wait until the hour is up; or reboot
your phone to reset the tracker.
Why doesn't play-via-SMS work on some KitKat phones?
Some background: Since the beginning of SMS in the '90s there have
been two types of SMS messages an app can send, Text
and Data. Text is meant for messages your friends
will read, while data is meant for app-to-app
communication. The latter is what Crosswords wants to
use, except that Google's never bothered to fix problems with
it on CDMA (Verizon and Sprint) phones. So what I and other Android
developers have done instead is send specially coded text
messages and then on the receiving side keep them from being seen by
users.
Google's broken this in two ways. First, on KitKat they've disabled
the feature that let us keep app-to-app text messages out of
your inbox. And at the same time they've released a new version of
Hangouts that, if you let it handle your SMS messages, prevents them
from getting to the app they're meant for.
I'm still working on a fix for this. The easy move would be to drop
support for the feature on CDMA phones until Google fixes sending
of data messages -- but a lot of you are on Verizon and
Sprint. So I'm hoping for a better idea.
What's this "relay" thing?
The relay is a server whose purpose is to allow copies of
Crosswords to find each other and exchange messages over the internet
(when they're not playing via SMS). It is not a game server in the
traditional sense -- there's no game logic (e.g. move validation)
there -- which is why it's possible to play via SMS (or Bluetooth,
eventually) and bypass the relay altogether.)
Things the relay does not do: send you advertising, track or ask
for personal data, or save any game data longer than needed to get it
to the other device.
How do devices find each other on the relay?
When you and another player want to connect your phones to play a
game, the problem is how they find each other. The most common
solution is that you both register with a server, giving the server
enough information that it can tell your friends (other registered
users) that you're online and how to reach you. I wanted to keep
things anonymous, so instead the Crosswords relay requires that you
and your friend agree on the name of a "room". One of you connects
and the room is created; then the other connects and is added to the
room, which is now full. The relay creates a unique ID for the game
and transmits it to both devices which use it to communicate from that
point on.
What features are you working on now?
Lots of stuff. And I love to hear from
people about what they'd like to see first.
- Ability to replicate a disappeared player on somebody else's
phone
- Update BYOD to work with Android, and at
the same time figure out how to share custom wordlists
- Support custom board layouts and sharing of same
- Figure out a good UI for populating a board and racks with an
existing game so Crosswords can be used to solve puzzles (or cheat
:-)
- Add real support for challenging a move where a "Challenge" button
is in the dialog for every reported turn
- Support "duplicate"-style play where everybody has the same rack
- Work with an artist or UI designer (any volunteers?) to make the
game look more pro
- ...
If there are other questions you want answered, please
email me. I decide what's
worth adding here based on what users tell me they want to see.
|