How to transfer an app from one developer accout to another? - Huawei Developers

What can I do if I want to migrate an application from one account to another?
What can I do if I want to migrate an application with Huawei IAP from one accout to another?
What can I do if I want to migrate an application with Huawei IAP and from one accout to another?
Don’t worry, App Transfer Operation Guide can help you, you just need do as follows:
1. Prepare the following materials:
1)Transfer-out account
2)Transfer-in account
3)App ID: You can log in to AppGallery Connect and go to Develop > Overview > App Information to obtain it.
2. Download the following document and fill it in.
1)App Transfer Application Form
2)App Transfer Checklist (Outside China)
3)lIf your app is distributed to China, you need to prepare copyright documents. For details, please refer to https://developer.huawei.com/consumer/en/doc/distribution/app/30215.
3. Apply for application transfer operations by referring to App Transfer Operation Guide based on your application type.

Related

[APP][SHARE][2.3+] DuoFM Holo File Browser

Note : I'm just sharing the work of the XDA Member uncopt.Here's a little introduction by him :
Duo: Holo File Manager w/ Root (DuoFM for short, formerly UNCOPT File Browser), aims to be your go-to app for everything file-related on your android device.
It is similar to Windows Explorer or Mac finder on your computer. Just like them, it can be used to access files on the device, and also to browse the files on your network or on cloud services.
DuoFM combines the features of the popular file managers (like Astro, ES Explorer, Solid Explorer, ...) and root explorers.
Its main focus points are:
1) design : The application fits perfectly within the modern android holographic (Holo) style that was introduced with Android 4 (Ice Cream Sandwich or ICS). It looks and feels as if it was one of the apps bundled with the core of android, and follows Google design guidelines perfectly.
2) security: unlike many other explorers, we never create any intermediate copies that could be accessed by other apps, not on the filesystem and not in memory. We support opening / sending / copying files of any size, without requiring any space left on the internal or external storage. This is true for all directories: local, remote (over the network or in the cloud), or inside archives. We stream the data to the target directory or application.
The various storage areas (internal memory, sdcards) are automatically detected, including On-The-Go (OTG) USB attachments when available. No user specification is required.
Access to files not located on the device or its attachements is done through plugins. This separation is done to keep the main application small and to let users decide what extra feature to install. The available plugins are listed in the settings.
So far, the following plugins are available (and free):
- LAN: to give access to the local network shares (windows, SAMBA or SMB).
- FTP(S) & SSH2
- Google Drive
- SkyDrive
- Dropbox
When superuser (root) is enabled, partitions can be automatically remounted in rw, and permissions (including suid, guid and sticky bits), group and owner can be changed easily.
We also developped a sdk that allows users to create their own plugins.
For details about all the features, our roadmap and how to contact us, please visit our website at http://duofm.bitbucket.orghttp://duofm.bitbucket.org
Click to expand...
Click to collapse
Original Thread - http://forum.xda-developers.com/showthread.php?t=2650583
Where is the dwnld link.??
Sent from my GT-S5360 using Tapatalk 2
aniket.lamba said:
Note : I'm just sharing the work of the XDA Member uncopt.Here's a little introduction by him :
Original Thread - http://forum.xda-developers.com/showthread.php?t=2650583
Click to expand...
Click to collapse
nice
Souroking said:
Where is the dwnld link.??
Sent from my GT-S5360 using Tapatalk 2
Click to expand...
Click to collapse
Free Version : http://goo.gl/5RKDm
Full Version : http://goo.gl/m9ksq
Lan Plugin : http://goo.gl/hD30T
Dropbox Plugin: http://goo.gl/f9668U
GoogleDrive Plugin: http://goo.gl/B1ssR9
FTP Plugin: http://goo.gl/ZspZ7L
SkyDrive Plugin: http://goo.gl/BWdXsa
SDK Plugin: http://goo.gl/Mia0fq (for developpers)

Parcing from xml or mysql (your recomendation)

Hi programmer,
I would like to do quiz application for android. i need you suggestions to do proper appl.
Let me generally explain what I would like to do:
• first page will be school subjects like biology physic and so on
• after will be quizzes packages
• and after selecting one of then it will start checking knowledge by showing question and 4 answers
generally it will be so.
My question is what is recommended to use parsing all data from xml or MYSQL DB from server OR add data to local SD card?
What is secure?
thanks in advance

Hello to everyone maybe someone can help

i have app called "SuperSMS" FROM 2016
and when i upload the new version and fill the declartion form
i get this message
Hi Developers at Dustfall,
Thanks for contacting the Google Play team.
I’ve reviewed your appeal request and found that your app, SuperSMS - Text Messages (com.Dustfall.SuperSms), does not qualify for use of DEFAULT_SMS.
We are unable to verify permissions prompt in your app. If these permissions (e.g. READ_SMS, RECEIVE_MMS, RECEIVE_SMS, and SEND_SMS) are not required, please remove them from your app.
Your app does not appear to prompt the user to be a default handler prior to requesting related permissions as required by the policy. Please make necessary changes in order to comply with policy requirements and resubmit your app through a Declaration Form.
Permission requests should make sense to users. You may only request permissions that are necessary to implement critical current features or services in your application. You may not use permissions that give access to user or device data for undisclosed, unimplemented, or disallowed features or purposes. For additional guidance, please review the Permissions policy and this Play Console Help Center article.
Please let me know if you have any other questions.
Best Regards,
Anya
The Google Play Team
NOW WHAT THE HELL THEY WANT ?
AND THERE IS NOBODY TO TALK WITH HIM

[HMS Core Tips & Tricks] Wallet Kit Integration Procedure and Precautions

More information like this, you can visit HUAWEI Developer Forum​
In this article, I would like to record the pits for integrating HUAWEI Wallet Kit I stepped on during the integration, so that you can integrate the Wallet Kit more quickly.
Link to the development guide:
https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides-V5/service-introduction-0000001050042318-V5
Integration Procedure
The Wallet Kit integration process consists of the following five steps:
1. Open the wallet service on the AGC
2. Generating Public and Private Keys
3. Adding a Pass Type on the AGC
4. Running the Demo of the Server
5. Running the Demo of the Client
6. View card adding status
Step 1.2.3 can be performed under the guidance of the development guide.
https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/preparations-server-0000001050160377
You are advised to run the demo provided in the development guide in section 4.5 to avoid many detours.
Note that this function is invoked when the demo is invoked. (The demo is normal, but you need to pay attention to some points when using the demo.)
Download the demo from these
Server demo(huawei-wallet-server-windows-jwe-demo.zip):
https://developer.huawei.com/consumer/en/doc/development/HMSCore-Examples-V5/java-sample-code-0000001050157448-V5
Android demo:
https://developer.huawei.com/consumer/en/doc/development/HMSCore-Examples-V5/android-sample-code-0000001050159395-V5
Note: The sequence of steps in section 4.5 cannot be reversed. The reason is described in the following sections.
Precautions
1. Pass structure
A card is made up of two parts.
Merchant information:
This is called model, which contains fixed information about the same type of vouchers, such as the card base, logo, merchant name, and card type.
Special information about a single pass:
This is called instance, such as membership card numbers, membership points, membership levels, and coupon status.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
2. Sequence of generating templates and objects
In the Wallet Kit, you need to generate a model and then an instance. Only the server has the interface for generating a model. Therefore, the SDK on the device or an interface on the cloud can be invoked to generate a card instance only after the interface for generating a model is invoked on the server.
This is why the order of steps 4.5 cannot be reversed, as described in the integration steps section.
3. Integration server demo
The following describes the five points of the server:
(1) Dependency for downloading each package in the Maven repository
(2) Modifying the Configuration File in the Demo
(3) Run the demo and move the JSON file to the specified location.
(4) Generate JWE character strings.
(5) Binding pass by URL
(1) Dependency for downloading packages in the Maven repository
After the downloaded server demo is opened in the IDEA, some Maven repositories cannot be downloaded. As a result, some files of the project report errors.
You can wait for the IDEA to download it, or manually download it from the Maven official website: https://mvnrepository.com/
Search for the corresponding groupId on the Maven official website. The search list of each artifactId is displayed. Select the required point to download the version of each artifactId.
After the download is complete, you can save the downloaded Maven repository to the local Maven repository. To view the local Maven repository, choose File > SettingsBuild, Execution, Deployment > Build Tools > Mavens on the IDEA.
After the adding is complete, update the Maven repository.
(2) Modify the configuration file in the demo.
After the Maven repository is complete, you can modify the configuration in the demo.
Open the release.config.properties file in the test/resources directory.
appId and appId.secret are the appId and key of the corresponding app in the AGC. The third URL does not need to be changed. The value of walletServerBaseUrl needs to be changed. Check the region (China, Europe, Asia, Africa, and Russia) to which your developer account belongs. For details about the corresponding URL, see https://developer.huawei.com/consum...-V5/wallet-server-api-2-9-0000001050158382-V5, here, my developer account belongs to Europe. Therefore, change the URL to the URL of Europe. (If you forget the region to which your account belongs, you can try each URL when the demo reports an error.)
The screenshot after the modification is as follows:
(3) Run the demo and move the JSON file to the specified directory.
After the configuration is complete, copy the hmspass folder in the config directory, build the project, click Build-Build Progect. Then, copy the hmspass folder to the target/classes directory.
​
After that, you can run the demo. When you run the demo, you should mainly run the java files in the Test folder
Each type of passes corresponds to two Java files. The file whose name ends with ModelTest provides the examples of adding, modifying, and querying pass models. The file whose name ends with InstanceTest provides the examples of adding, modifying, and querying pass instances.
a. Generate a pass model
The following uses the member card (loyalty) as an example.
Open the HwLoyaltyModelTest file and create a model method named createLoyaltyModel().
The LoyaltyModel.json file is the file to be transferred to Huawei interfaces. Before running the method, you need to modify the file information. You can find the file in the target/classes/hmspass directory.
Modify the passTypeIdentifier and passStyleIdentifier fields. The passTypeIdentifier field is the service ID defined when we add card types on the AGC. The passStyleIdentifier field is the unique identifier of the model and is used when pass instances are created, field defined by the developer. The screenshot after the modification is as follows:
The following figure shows the console after createLoyaltyModel() is executed.
b. Generate a pass instance.
The following uses the member card (loyalty) as an example.
The procedure is similar to that for modifying a model. Open the HwLoyaltyInstanceTest file and view the LoyaltyInstance.json file in createLoyaltyInstance().
Change the values of passTypeIdentifier and passStyleIdentifier to the values generated in the previous step. The values of serialNumber and organizationPassId are unique identifiers of cards (in different application scenarios). Ensure that the values of the two fields are unique.
Then we run createLoyaltyInstance() to generate a pass instance.
(4) Generate a JWE character string
The generateThinJWEToBindUser() and generateJWEToAddPassAndBindUse() methods exist in the InstanceTest file of each pass.
generateThinJWEToBindUser(): Signs and encrypts the generated pass instance and generates a character string. -----The createLoyaltyInstance() method of (3).b does not need to be executed.
generateJWEToAddPassAndBindUse(): Signs and encrypts pass instances that are not generated, and generates corresponding character strings. ------The createLoyaltyInstance() method of (3).b does not need to be executed.
The two methods are similar. The following uses generateThinJWEToBindUser() as an example. The code is as follows:
appId indicates the app ID, and instanceIdListJson indicates the serialNumber set when the pass instance is generated. The code after modification is as follows:
Note: The LoyaltyInstance.json file in generateJWEToAddPassAndBindUse() is a pass instance that is not generated (the createLoyaltyInstance() method is not executed).
Then you need to change the value of jweSignPrivateKey to the private key of the public key configured on the AGC card.
The screenshot after the modification is as follows:
The following results are obtained:
A JWE string is generated after the serialNumber of a pass is encrypted and signed. Generally, the JWE string is called a thin JWE.
(5) Bind pass by URL
Huawei provides an interface for binding pass through the URL. The format is https://{walletkit_website_url}/walletkit/consumer/pass/save?jwt={jwt_content}.
{jwt_content} is the URL-encoded JWE String obtained in the previous step. The URL-encoded code is as follows:
URLEncoder.encode(jwtStrInstanceIds, StandardCharsets.UTF_8.toString())
{walletkit_website_url}: URL of the area where the developer is located. The mapping is as follows:
For example, the URL of the thin JWE in Europe is in the following format:
https://walletpass-dre.cloud.huawei.com/walletkit/consumer/pass/save?jwt=YWlKtBZmNGtT.......eTlabW
After you enter the URL in the browser, the Huawei ID login page is displayed. Log in to a Huawei ID that is in the same region as the developer account.
After the login is successful, the card binding result is displayed.
The possible cause of binding fail is that the pass has been bound by another user or the region of the Huawei ID is different from that of the developer account.
4. Integrate the client demo.
(1) Changing the Key
(2) Enter the pass information and add passes.
(3) Confirm and log in with your Huawei ID.
(4) Bind passes
(5) Open your wallet and check your passes.
(1) Changing the Key
After opening the HmsWalletClientDemo project using Android Studio, you need to modify the PRIVATE_KEY_EUROPE_DEBUG file in the Constant.java file in the com.huawei.hms.wallet package.
Change the value of this field to the content in the private.txt file that is generated when the public key and private key are generated in step 1.
(2) Enter the pass information and add passes.
a. Select European test environment
b. Click ClickSaveLoyaltyCard
For the full content, you can visit HUAWEI Developer Forum

Dynamic Tag Manager | React-Native

In this article, I will explain how to integrate Huawei Dynamic Tag Manager(DTM) into React Native project.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
React Native is a framework developed by Facebook that enables cross-platform mobile application development based on JavaScript and React. In this article, HMS will be integrated into react native project and developer sample codes will be provided to increase the productivity of developers.
Service Introduction:
HUAWEI Dynamic Tag Manager (DTM) is a dynamic tag management system. With DTM, you can easily and securely deploy and update your tag configuration in a web-based user interface to monitor specific events and report data to third-party analytics platforms, and to perform data-driven operations based on HUAWEI Analytics' powerful analysis capabilities. While adding HUAWEI Dynamic Tag Manager(DTM) to the application, the analytics kit needs to be integrated into the app.
Integration:
Main steps of integration:
Integrating the HMS Core SDK
Enabling Required Services(Analytics Kit)
Dynamic Tag Manager Configuration
Importing a Configuration File
To able to use Dynamic Tag Manager, you need to follow process below :
1-Register as a Developer and create a new app.
For more detail about registration and verification follow this:
https://developer.huawei.com/consumer/en/doc/10104
2- Enable the analytics kit in the Manage API section .
After that, follow the steps in the link below to integrate HMS Core Sdk into the project and for more details about creating a new project on AppGallery Connect .
https://medium.com/huawei-developers/android-integrating-your-apps-with-huawei-hms-core-1f1e2a090e98
3- Add the DTM and Analytic kit sdk to build.gradle in the app directory from Android Studio
4- Open the Dtm Configuration Page (Growing > Dynamic Tag Manager) on AGC and create configuration. This configuration include all DTM resources (Overview,Variable,Condition,Tag,Group,Version). Only one configuration can be created for an application and the package name cannot be changed while creating the configuration.
After the configuration is created, click on the configuration name.
5-Configuration of Service
On the Overview tab page, you can view the change history and operation records of variables, conditions, and tags in the current configuration version. The operation records on a variable, condition, tag or group are displayed in the operation records area when they are deleted, created, or edited. In change history, it can be checked whether a variable, condition or tag is added or deleted at a specific time.
A variable is a placeholder used in a condition or tag. DTM provides preset variables that can be used to configure most tags and conditions, and also custom variables can be created.
Currently, DTM provides 18 types of preset variables and 6 types of custom variables. Some types of preset variable are shown in below picture.
I created Event Name as a present variable which will use in condition part.
Then, Click the create button in Custom variable row, enter the name, type which is used to obtain the value of the reported event, and event parameter key and click save button.
You can see some of the custom variable types in below, then configure your variable types.
Then, open the condition page. A condition is the prerequisite for triggering a tag and determines when the tag is executed. A tag must contain at least one trigger condition.
A condition consists of three elements: name, type, and trigger condition. Name and type are mandatory section.
For more detail about condition =>
https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/server-dev-0000001050043921
The next step after creating a condition is to create a tag.Tag is used in your app to track events. DTM supports the HUAWEI Analytics and many third-party tag extension templates. It can be set parameters and trigger conditions for a tag in DTM, and release the configuration version to track events.
Firstly, Enter a tag name and set the extension to Huawei Analytics. Then choose one of the operation types shown in below.
After selecting, enter a new event name in event name text box.
NOTE
The event name must start with a letter or reference and can contain only digits, letters, and underscores (_). If a variable is referenced in the event name, you need to ensure that the value of the referenced variable meets the event name constraints. Otherwise, the event may fail to be reported.
Click Add below Parameters for addition or modification and set Key and Value for the parameter. Lastly, click the Add under Trigger condition and set a trigger condition for the tag.
Don’t forget click the save button after creating tag.
Version is used to save different phases of a configuration. It can be created a version for a configuration anytime to save the latest configuration and you can download, preview and release the version in detail page.
To create a version, you can click Create version on the Overview page or click Create on the Version page. Enter the version name and description. All the service configurations are completed on DTM portal. Let’s look at the other detail.
6- After doing all the configuration on DTM portal, download the version page. The name of file is DTM-***.json.
And then, create assets file in src\main directory in app folder and create a new container file in assets, then move to generated configuration DTM-**.json file to the container. The directory will be src/main/assets/container/DTM-***.json.
Hint: Don’t forget to download agconnect-services.json file and add the internet permission to the manifest.
7- It can be skipped this section if you use the visual event function to add events. After all the configurations are imported successfully, the event is sent using the Analytics Kit. Install Analytics kit plugin to project and run the following command.
Then, import Analytics kit to the project and send event.
Using Debug Mode, you can view the event record in real time. Run the following command on an Android device enable the debug mode :
adb shell setprop debug.huwei.hms.analytics.app <Package_name>
Verification Result:
This case successfully integrated HUAWEI Dynamic Tag Manager into react native project. The result shows that developer can integrate DTM to their react native project. For demo project code : https://github.com/simgekeser/React-native-hms-dtm
Official HMS Resources
Dynamic Tag Manager:
Codelab:
https://developer.huawei.com/consumer/en/codelab/HMSDTMKit/index.html#7
Document: https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/introduction-0000001050043907
SDK Library: https://developer.huawei.com/consumer/en/doc/development/HMSCore-Library-V5/sdk-download-0000001050174612-V5
Analytics Kit:
Codelab: https://developer.huawei.com/consumer/en/codelab/HMSAnalyticsKit-ReactNative/index.html#0
Document: https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/react-native-development
SDK Library: https://developer.huawei.com/consumer/en/codelab/HMSAnalyticsKit-ReactNative/index.html#2
Related Links
Thanks to Simge Keser for this article.
Original post:https://medium.com/huawei-developers/dynamic-tag-manager-react-native-d032a03b86d0

Categories

Resources