Applications that use StreetPass communication must comply with the guideline items in this chapter.
An application must create a StreetPass box in order to use StreetPass. Once a box is created, the application can continue to use StreetPass until the box is removed.
In this chapter, activating StreetPass means creating a StreetPass box and making it so the application in question can use StreetPass. Deactivating StreetPass means deleting a StreetPass box and configuring the application so that it cannot use StreetPass.
It is prohibited to use an independent name in place of StreetPass. "StreetPass box" is a developer term. Do not use it in user documentation. For details, see the Nintendo 3DS Terminology.
5.3.1 Activating StreetPass
When you create a StreetPass box and activate StreetPass, the system automatically delivers data and messages each time it runs StreetPass. However, this may not always be desirable for the user, so you must always seek the user’s confirmation in advance before creating a StreetPass box in your application. If a user performs an operation that clearly indicates consent to registering a StreetPass task (such as switching StreetPass from inactive to active on an options screen) there is no need to get user confirmation again.
When getting confirmation, we recommend that you use the phrase “activate StreetPass” to standardize terminology between applications. We also recommend that you implement some way of informing users that StreetPass will be activated for the game that they are currently playing. For example, we recommend that you display a message such as “Activate StreetPass for this software?”
If other applications have already created the maximum number of StreetPass boxes, no new StreetPass boxes may be created until the user deletes the StreetPass box of another application via StreetPass Management. You must therefore inform the user of the following when the maximum number of StreetPass boxes has already been created.
- StreetPass cannot be activated for any more software titles on this system.
- StreetPass must be deactivated for some other title under StreetPass Management in System Settings
We recommend that you use the phrases “activate/deactivate StreetPass” when notifying users, so that all applications will use the same terminology.
Example Message(s):
StreetPass cannot be activated for any more software titles on this system. Go to StreetPass Management in the System Settings and deactivate StreetPass for some other title.
The term "StreetPass box" is for developers only. Do not include it in messages displayed to users.
5.3.1.1 User Confirmation When Activating StreetPass
Guideline Item |
The application must ask the user before activating StreetPass. |
---|---|
Software to Be Tested |
Applications that support StreetPass. |
Exceptions |
When the user performs an operation that clearly indicates consent to activate StreetPass
|
Test Method |
Activate StreetPass. |
Pass/Fail Determination |
Passes if the application seeks user confirmation to activate StreetPass in advance. |
5.3.1.2 Handling Situations When StreetPass Boxes Cannot Be Created
Guideline Item |
If you attempt to activate StreetPass when the maximum number of StreetPass boxes has already been created, an appropriate message is displayed to prompt the user to use the StreetPass Management menu. |
---|---|
Software to Be Tested |
Applications that support StreetPass. |
Test Method |
|
Pass/Fail Determination |
Passes if the user is notified of the following in step 2:
|
5.3.2 Describing StreetPass to Users
Once an application creates a StreetPass box, the system runs StreetPass automatically for that application from that point on, even after the application is closed. To inform the user of this fact, Nintendo recommends displaying a message such as the following within your application: “StreetPass runs automatically even after you exit the game.” There is no particular number of times or particular timing at which this message must be displayed.
No required guideline items.
5.3.3 Inbox
When StreetPass data is received from another Nintendo 3DS via StreetPass, it is stored in a StreetPass box’s inbox. If there is even a single instance of StreetPass data in an application’s inbox, a StreetPass message from that application is displayed in Notifications. When a user opens that message, a list of icons and captions is displayed for each instance of received data in the inbox. StreetPass data stays on the list forever if it is not deleted. Nintendo recommends that each application check its StreetPass box when it is launched and at appropriate intervals thereafter, to retrieve everything in the inbox and then empty it.
No required guideline items.
5.3.4 StreetPass IDs
A StreetPass ID is used to create the StreetPass box. Applications must create this StreetPass ID by taking a unique ID that fulfills the following conditions and specifying it to the id argument of the nn::cec::CTR::MakeCecTitleId function.
-
If the application does not perform StreetPass with other applications, but only with itself:
The application must use the unique ID assigned to itself.
-
If the application performs StreetPass with other applications and not only with itself:
The application must use either the unique ID assigned to itself, or the unique ID assigned to one of the other applications it performs StreetPass with.
Also, when you use ctr_makebanner to create the banner file, you must set the unique ID, used by your application to create its StreetPass ID (which is in turn used to create its StreetPass box), as the CecUniqueID value in the BSF file. Doing so causes an update indicator to be displayed on the application’s icon in the HOME Menu when there is new data in the StreetPass box created by your application.
It is prohibited for a single application to use multiple StreetPass IDs to create StreetPass boxes. If an application were to create StreetPass boxes using more than one StreetPass ID, not only would it use up StreetPass slots unnecessarily, but the update indicator would only be displayed for the box whose ID was specified in the BSF file and no indicator would show when the other boxes had been updated. However, it is acceptable for the application to take an ID different from the StreetPass ID it used to create its StreetPass box and use that ID for purposes like checking whether other applications have created StreetPass boxes on the system.
5.3.4.1 Setting the StreetPass ID
Guideline Item |
When creating StreetPass boxes, you must use only one StreetPass ID: the number that is created based on the unique ID assigned by Nintendo. The same unique ID must also be designated in CecUniqueID in the BSF file. |
---|---|
Software to Be Tested |
Applications that support StreetPass. |
Test Method |
|
Pass/Fail Determination |
Passes if all of the following conditions are met in step 2:
|
5.3.5 Complying with the EULA During StreetPass Communication
Users must accept the Nintendo 3DS Service User Agreement (the “EULA”) in order to use StreetPass on a Nintendo 3DS system. You can use the nn::cfg::CTR::IsAgreedEula function to determine whether users have accepted the EULA.
The StreetPass library checks whether the user has accepted the EULA when the nn::cec::CTR::MessageBox::WriteMessage function is used to write data. If the user has not accepted the EULA, attempting to write will fail and return ResultNotAgreeEula.
If the user has not accepted the EULA and the nn::cec::CTR::MessageBox::WriteMessage function fails and returns ResultNotAgreeEula, Nintendo recommends that you either start the EULA agreement sequence by using the Error/EULA applet, or display the following or an equivalent message: “To use StreetPass, you must accept the terms of the Nintendo 3DS Service User Agreement. In the System Settings, select Internet Settings ⇒ Other Information ⇒ User Agreement and agree to the terms.” If possible, we recommend starting the EULA agreement sequence without displaying an error message, so that the user can immediately accept it. When starting the EULA agreement sequence, be sure to consider the possibility that the user will not agree to the EULA. It is acceptable to display an error message when the user does not agree to the EULA in the EULA agreement sequence. It is acceptable for the application to start the EULA agreement sequence or display an error message at some appropriate time before transitioning to a situation where data might be written, and for the application to thereby restrict data writing in advance. When doing so, you can also have the application restrict other features as well, such as displaying the content of the inbox.
If your application requires StreetPass and cannot be played unless the user has accepted the EULA, it is also possible for you to set the AgreeEula flag in the BSF file to True when you use ctr_makebanner to create the banner file for your application. If you set the AgreeEula flag to True, starting the application from the HOME Menu causes the system to check the EULA agreement status. If the user has not accepted the EULA, the system automatically begins the agreement procedure. The application will not start until the user agrees to the EULA.
Note that a user may be required to accept the EULA more than once. Specifically, a user must agree to the EULA again when the EULA's major version changes, when the Nintendo 3DS system's country setting changes, and when the Nintendo 3DS is initialized (system memory is formatted). Once the user has agreed to the EULA, the state of the EULA does not change while an application is running.
No required guideline items.
5.3.6 Complying With Parental Controls When Using StreetPass
StreetPass may be restricted by Parental Controls. When this happens, the nn::cec::CTR::MessageBox::WriteMessage function will return ResultParentalControlCec and fail to write data. You can also use the nn::cfg::CTR::IsRestrictP2pCec function to determine whether StreetPass is restricted by Parental Controls.
When StreetPass is restricted by Parental Controls and the nn::cec::CTR::MessageBox::WriteMessage function fails with a return value of ResultParentalControlCec, Nintendo recommends displaying a message similar to the following: “This software cannot use StreetPass because StreetPass is restricted by Parental Controls.” At the appropriate time before transitioning to a situation where data might be written, you can display a message similar to the above, with the application preventing any data from being written. When doing so, you can also have the application restrict other features as well, such as displaying the content of the inbox.
Note that in Japanese, the term 「ペアレンタルコントロール」 ("Parental Controls" in katakana) is for developers only. In user-facing text, use the term 「保護者による使用制限」 ("Parental Controls" in kanji). For details, see the Nintendo 3DS Terminology.
No required guideline items.
5.3.7 StreetPass: Language Settings
The application name that is registered when you create a StreetPass box and the caption that is set when you create StreetPass data may use either the language set in System Settings or the language set in the application itself.
For more details on the policies relating to an application’s language settings, see chapter 2.19 HOME Menu in the General Volume.
No required guideline items.
5.3.8 Application Names to Register When Creating StreetPass Boxes
Although Nintendo recommends that you use the application name displayed on the HOME Menu as the application name to register when you create a StreetPass box, applications may use different names for reasons of their own. If an application is part of a series of titles that share a StreetPass box, for example, you may register the name of the series rather than the name of the application.
It is permissible for the registered application name to change according to the system language and the application-specific language.
No required guideline items.