Im working on a project that I should be controlling the DJI drone with via a computer. Therefore, first of all I need to implement a code that works on the mobile SDK. However, the virtual sticks on DJI Sample APK does not work, any suggestions?
Best.
The Virtual RC Protocol (virtual sticks) does work on the QT/Windows version of the Onboard SDK. It might help you to look into the messages that get passed there.
Yeah, after completing the project I can actually answer my own question.
The problem was the sending rate of the DJI Sample SDK when I changed it to 10Hz and it actually worked.
PS: If you think it's too hard to control as in the controller, you can change the control system, which is the flight controller settings.
https://developer.dji.com/mobile-sdk/documentation/introduction/flightController_concepts.html#coordinate-systems
I changed it to the Course Lock orientation which can be controlled in the sample SDK as well.(angle/velocity)
To see what I did you can check the link below;
https://www.youtube.com/watch?v=5sQ5uMXWnPU&list=PLWuZdcP_lwyr_GSLl9yzC_Li_q2421o2t&index=5
Love
Related
I'm developing an Android Application that uses the DJI SDK. The drone I'm using right now is the Mavic Pro 1. This application wants to use the predefined classes for waypoints inside the DJI SDK to create missions for the drone, but when performing the configuration of the Waypoint mission and correctly loading the mission inisde the Mission Operator (current state is set to: READY_TO_UPLOAD after calling the MissionOperator.loadMission), when trying to perform the "uploadMission" predefined function the app crashes and the Drone automatically disconects of the Application.
I think the waypoints are correctly created and saved inside the builder, otherwise it would fail in the loadMission function. Also the parameters are correct since the checkParameters function is used.
I have seen that some people in previous posts say that you need first to set the application to Ground station mode. But I don't find any indications of this existing inside the DJI SDK documentation, so I think it is deprecated and not needed anymore for current versions of the SDK.
Is the Upload of the mission inside the Operator failing because I am using a Mavic Pro 1 maybe?
If anyone has the correct steps to setup Waypoint missions or knows the error it would be of great help for all the DJI SDK users.
Best regards,
Thanks in advance
Take a look at the example project for the sdk on github. It's all in there.
https://github.com/dji-sdk/Mobile-SDK-Android
Mavic 1 should work with waypoints.
If you include your logcat we might help you, without that and your code, it's almost impossible to tell what you doing wrong.
I was wondering if anyone had a relatively simple solution for us.
We created an app to be used by our clients on android devices that we give them.
We would like the client to only be able to use our app and have limited access to everything else (i.e. settings, email etc.) What is the best way to achieve this without using 3rd party apps.
Thank you in advance!
This may not help but the L preview has a task locking feature included that may be of some insight, I'm not aware of how it functions as yet
Task locking
The L Developer Preview introduces a new task locking API that lets you temporarily restrict users from leaving your app or being interrupted by notifications. This could be used, for example, if you are developing an education app to support high stakes assessment requirements on Android. Once your app activates this mode, users will not be able to see notifications, access other apps, or return to the Home screen, until your app exits the mode.
http://developer.android.com/preview/api-overview.html
Hope this helped
Suppress the Title Bar & Make Your App a Launcher
Root Your Tablet
Modify System Files and Settings to hide the soft keys
On the next link you can find the complete solution for the Nexus 7 (2012)
http://thebitplague.wordpress.com/2013/04/05/kiosk-mode-on-the-nexus-7/
simple Answer is:
Lock Install button with modify system settings.
Create your own customized-ROM and apply your requirement to that ROM.
more info, visit XDADavelopers
Is there any way to update the Android OS through an App(Using Android API or any other API/) after checking if a newer Android version is available in the market/Playstore
The Use Case required to be supported here is as follows:
The App starts and checks the version of the installed Android OS
It then finds the version of available Android OS in the
Playstore/other repository for that device
Then it compares the two version and if the available version is
newer, then it installs the new Android version on the device
How can it be implemented , especially the third point ? I do not want to root the device for that, so if there is any way to achieve this, please help ....
There is no API. If your device has an update feature built in (most do), you can decompile the update service and see how it works. If your device does not have an update feature, then you can look at custom ROMs for your device. Once you get ahold of a ROM or an update.zip you want to use, the process cannot be done automatically. The updating takes place in the system recovery mode where the user will have to select the .zip to update. However, if you can decompile and figure out how your manufacturer's update service works, maybe you can pull off an automated process.
There aren't any tutorials or documentation for this, as it is 100% dependent on phone model/OS. You can probably find a flashable ROM for your device, however, but the process is rarely automated. Actually, take a look at ROM Manager in this case, it is a somewhat automated upgrade app. I tried it before and it bricked my phone. Good luck
You would need to know where to ask if there is a newer version. And then is there an upgrade available for that particular device. At that point you could broadcast a request to update. Does not the device know when an update is available?
For updating your android version you would need
Custom Android on you device.(Some more info)
Rooted device.why need rooting?
Now for installing we would need to flash ROM.You would also need to have check for version of the OS available, which depend upon your logic .Generally Samsung ,Sony they use custom android and the updates are pushed over app center( or something like that,not much knowledge) in your case it may be any cloud service or server to check version for your custom android.
When we have a new version, after user accepts to upgrade, a new img file would be downloaded to your device which would be used to upgrade the OS.Please note you would also need a recovery backup method too.There are some Commands that can be used to extract and download the OS through your code.
I haven't implemented it yet but this is the procedure i could find.
I hope this would help others.
UPDATE
I have got some new information about how can we initiate the update through code. the Link and there's this another link that can be great help.
In both the examples they are using SystemRcovery class with intallerPackage API.
Does anyone know if PushLink can do silent updates? That is, download the app and install it without any interaction from the user?
The PushLink website is quite sparse on documentation regarding features available so I can't be sure.
Or does anyone know if it's possible to have a silent installer for android? I basically have android devices that will not do any user interaction and I need to be able to update my apps running on them.
Yes, it is possible since version 3.1.0 released at 2012.04.23.
Take a look at NINJA strategy
NINJA (Only for rooted devices) The application is just re-launched in
a new version. There isn't notification. BETA!
There's no official way to install anything on Android device without user interaction. Which is a good thing, because it prevents a lot of possible malware and exploits from working.
I'm trying to write some apps using wikitude, and I'm having some problems running even the example.
I've put the sample ( BasicOpenARDemo ) that comes with the SDK inside eclipse and tried to run it, where I encountered the next error: "wikitude was not found on the system. Please press the ok-button to access the Android market and download wikitude."
First question- I don't understand- Why am I approached to download the utility when I have a standalone sample inside my eclipse? Doesn't the core files behind Wikitude come with the SDK or the sample itself?
The next question will be - after some googling, I've found that in order to install this "Android market" I need to follow the manual that comes in the 9th message in the next thread (the message that was written by ronni.rasmussen) -
http://forum.xda-developers.com/archive/index.php/t-529170.html
Well, I've followed it, and now when I try to press the OK button that comes after the "wikitude was not found on the system..." message, I get redirected to the Android market, where I find Wikitude, but when I try to download it- I get a "Download was unsuccessful. Please try again" error message. How do I fix that?
One more thing that I don't understand- How come it's written in this offline Android market that the available wikitude version is for android 1.5 and no longer maintained?
As you can see- I'm quite baffled here. Hope someone could clear this up for me.
I was with the exact same problem. The problem was that installing Wikitude from the market (following the link you provided) does not guarantee to have the system requirements supported in the virtual device, therefore it gives an error when you run the BasicOpenARDemo, if it let you install it at all.
The solution was creating an AVD with an GoogleAPI (it includes maps support, I used the level 10 API for Android 2.3.3, it didn't work for the level 8 API), adding the camera, accelerometer, compass, GPS, etc., support to the virtual device (I did this via Eclipse). Then I downloaded the .apk for Wikitude and installed it via command line (.adb).