how to include application tutorials on first use xamarin.android - android

I want to deploy the app on play store then after a user downloads the app and opens it, the app will prompt some guide or tutorial per module or function to guide the user. Is there any easy way to do it ?
Note: It's okay if the tutorial prompts again if the user deletes the app and reinstall.

The most consistent way I've found is to use something like these ShowcaseView or MaterialShowcaseView to display the tutorial, then save that your user has already seen it using something like Shared Preferences. Upon next opening, all you have to do is check the Shared Preferences again to see if the user has already seen that tutorial.

The earlier way was to use a view pager with images of the tutorials and show it once using the concept of preferences. Now we can use various third party library like ShowcaseView to show the tutorials and using preference you can avoid it showing every time the user opens the application.

You could install James Montemagnos Settings Plugin. It can write persisting data to the AppData on your mobile device. You will then create a bool in the Settings.cs-File. As soon as the Tutorial is over, you set this bool to true and you only show this tutorial when the bool is false.

Related

Is there a way to capture when the platform's share sheet is aborted using Flutter's share plugin?

I am using Flutter's share plugin to share contents from my app.
Share.share("A sample text that is shared")
Upon inspection, I found that the plugin invokes a method 'share'on the MethodChannel 'plugins.flutter.io/share'. This brings up a bottom sheet depending on the platform. What I would like to do is capture the closing of this share sheet. The share sheet can be closed by:
Clicking on the region outside the sheet
Pressing the back button on Android
Clicking one of the options in the sheet which then opens up the respective application
Ideally, the Future of this "share" would return the information which could be used to decide if the user aborted the share (cases 1 and 2) or proceeded along with the share(case 3). I am trying to do this to track the number of times a content is shared from my app.
The Share.share returns a Future<void> which I believe is resolved after the method is invoked on the platform channel.
Is there a way I can capture when the platform's share sheet closes just like we can capture when other widgets like dialogs are popped? Or more specifically,
Is there a way to know if the user actually proceeded with the share or not?
Something like this would have made it much easier:
Share.share("A sample text that is shared").then((bool isAborted) {
// Do something...
});
You have correctly figured out that this is not possible using the share plugin.
Additionally, this is also not possible on the platform level anyway (see an Android answer for reference).
Moreover, the answer to your request would be to create an issue at flutter/flutter because this is a plugin by the Flutter team and GitHub issues are used to track such feature requests. In this case, you want to make sure to include [share] in your issue title. See the flutter/plugins README for reference.

How can I get information from another app

I am new to Andorid development.
I am trying to write a small application for Android device.
One thing that I want is to get information from another installed application.
EDIT:
I want my application to do A and B, and I found a application that already does part A,so what I am trying to do is to extend the functionality of the existing application
is there a generic way to retrieve information from another app?
#dprogramz gave a really good answer but to build on it you may want to take a look at startActivityForResult if you're looking to get a photo or use input from some external activity.
Documentation is here
What information?
If it is shared information that lives in a shared directory then it shouldn't be any problem at all.
If it is protected information you will have to give your app access to these files.
If it is "real-time" information you will have to invoke an API. take a look at the application class
http://developer.android.com/reference/android/app/Application.html
yes, there is a possibility to extend a app X with a feature A. You can add a new feature B to the app and make it more scalable and realiable,
only if-
Project is Open-Source:
You can contribute to the app via github and push changes.
If the owner likes it, you can be hire.
OR
Download the existing the project, make changes and upload it.

change browser home page in android [duplicate]

Within my app, is it possible to programatically change the Android browser's homepage url? If so, how can I accomplish this?
For example, if you run this popular app with Android 2.3 (all that I've tested), it will change your homepage to http://www.searchmobileonline.com
-- https://market.android.com/details?id=goldenshorestechnologies.brightestflashlight.free
Thanks!
I did not try this myself, but BrowserSettings has a public interface setHomePage:
public void setHomePage(Context context, String url) {
Editor ed = PreferenceManager.
getDefaultSharedPreferences(context).edit();
ed.putString(PREF_HOMEPAGE, url);
ed.commit();
homeUrl = url;
}
It is used in BrowserBookmarksPage like this:
BrowserSettings.getInstance().setHomePage(this, [URL]);
But that BrowserSettings class is only accessible from that package. So maybe accessing the shared preferences is easier... ?
MORE...
Not really here to be giving a lesson. It may be possible to do, maybe with some native code accessing the XML file with the preferences for the Browser or other ways like this, but...
No matter what you do, this would be going "around" the security in
place. Your app should not be able to change the homepage of the
Browser (or it would be in the documentation)
Even if it is possible to find a way to do it (through NDK or finding undocumented interfaces), it would most likely stop working at some point with some new release of Android, which is probably not what you would want.
I understand some app already do it, and IMHO, that's bad. Does not mean that your app should be doing the same and frustrate more potential users.
There is NO WAY to change the homepage url of the browser.
com.android.browser opens/creates a preference with MODE_PRIVATE. So the files's attributes are became as -rw-rw----
And also browser app's menifest has no sharedUserId attribute.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.browser">
The app doesn't provide the chance to share app's preference file.
This cannot be accomplished programmatically from within your app.
Edit: I downloaded the application you provided, and it does appear to accomplish what you're looking for. How exactly it was done, I have no clue. I can't find anything online on how to do this. I'm interested to see if anyone has any ideas on how they accomplished this.
I hava a opinion:
Maybe you can read the source code of Browser and find the code like this:
SharedPreferences prefs = mContext.getSharedPreferences(RECOVERY_PREFERENCES, Context.MODE_PRIVATE);
and get the SharedPreferences of Browser,then find the place to set homepage, change it.
Is that possible?
Im guessing the app developer didnt write it in his code to do that. I think one of the 11 ad sdks he has in his app is causing it.
He has
adserver.adview
adwhirl
amobee.onlinehapi
apperhand
google
inmobi.androidsdk
jumptap.adtag
mdotm.android.ads
millenialmedia.android
mobclix.android.sdk
zestadz.android
as a side note this is ridiculous.
I authored the app called My Home Page (https://play.google.com/store/apps/details?id=com.aac.myhomepage) where I needed to accomplish this exact task. I looked everywhere possible and couldn't find a method of doing this so I ended up using two workarounds which really aren't great options in my opinion.
1) I offer a root option for those who have rooted devices where I simply access the SharedPreferences XML file of the browser and, using regular expressions, swap out the value of the home page with the one needed.
2) Copy the URL to the clipboard and tell the user how to accomplish changing the default home page.
Note that I did not use root access without the user's permission nor did I change the home page without the user's permission. This is the purpose of the app and the home page isn't changed without the user explicitly doing so.
I recently noticed that the ad SDKs were doing this but something tells me that they aren't doing it in a proper manner and I don't have any interest i

How to change the default Android browser's homepage within an app?

Within my app, is it possible to programatically change the Android browser's homepage url? If so, how can I accomplish this?
For example, if you run this popular app with Android 2.3 (all that I've tested), it will change your homepage to http://www.searchmobileonline.com
-- https://market.android.com/details?id=goldenshorestechnologies.brightestflashlight.free
Thanks!
I did not try this myself, but BrowserSettings has a public interface setHomePage:
public void setHomePage(Context context, String url) {
Editor ed = PreferenceManager.
getDefaultSharedPreferences(context).edit();
ed.putString(PREF_HOMEPAGE, url);
ed.commit();
homeUrl = url;
}
It is used in BrowserBookmarksPage like this:
BrowserSettings.getInstance().setHomePage(this, [URL]);
But that BrowserSettings class is only accessible from that package. So maybe accessing the shared preferences is easier... ?
MORE...
Not really here to be giving a lesson. It may be possible to do, maybe with some native code accessing the XML file with the preferences for the Browser or other ways like this, but...
No matter what you do, this would be going "around" the security in
place. Your app should not be able to change the homepage of the
Browser (or it would be in the documentation)
Even if it is possible to find a way to do it (through NDK or finding undocumented interfaces), it would most likely stop working at some point with some new release of Android, which is probably not what you would want.
I understand some app already do it, and IMHO, that's bad. Does not mean that your app should be doing the same and frustrate more potential users.
There is NO WAY to change the homepage url of the browser.
com.android.browser opens/creates a preference with MODE_PRIVATE. So the files's attributes are became as -rw-rw----
And also browser app's menifest has no sharedUserId attribute.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.browser">
The app doesn't provide the chance to share app's preference file.
This cannot be accomplished programmatically from within your app.
Edit: I downloaded the application you provided, and it does appear to accomplish what you're looking for. How exactly it was done, I have no clue. I can't find anything online on how to do this. I'm interested to see if anyone has any ideas on how they accomplished this.
I hava a opinion:
Maybe you can read the source code of Browser and find the code like this:
SharedPreferences prefs = mContext.getSharedPreferences(RECOVERY_PREFERENCES, Context.MODE_PRIVATE);
and get the SharedPreferences of Browser,then find the place to set homepage, change it.
Is that possible?
Im guessing the app developer didnt write it in his code to do that. I think one of the 11 ad sdks he has in his app is causing it.
He has
adserver.adview
adwhirl
amobee.onlinehapi
apperhand
google
inmobi.androidsdk
jumptap.adtag
mdotm.android.ads
millenialmedia.android
mobclix.android.sdk
zestadz.android
as a side note this is ridiculous.
I authored the app called My Home Page (https://play.google.com/store/apps/details?id=com.aac.myhomepage) where I needed to accomplish this exact task. I looked everywhere possible and couldn't find a method of doing this so I ended up using two workarounds which really aren't great options in my opinion.
1) I offer a root option for those who have rooted devices where I simply access the SharedPreferences XML file of the browser and, using regular expressions, swap out the value of the home page with the one needed.
2) Copy the URL to the clipboard and tell the user how to accomplish changing the default home page.
Note that I did not use root access without the user's permission nor did I change the home page without the user's permission. This is the purpose of the app and the home page isn't changed without the user explicitly doing so.
I recently noticed that the ad SDKs were doing this but something tells me that they aren't doing it in a proper manner and I don't have any interest i

Adding App Specific Entry into the Android Settings Menu

As I know, we can add our app specific menu entries in iPhone's Settings menu. I want to know how same can be done in Android? I am developing for Android 1.6 using Eclipse Galileo. Please guide me.
Probably the closest thing to what you seek is the Account Authenticator feature. For more information see this question and look for the android:accountPreferences attribute. This allows your preference Activity to show up in the Accounts area of Settings.
Apart from that, while it's difficult to prove a negative, I've analyzed the Settings source code for Jelly Bean and I'm pretty certain this is impossible. To see for yourself, examine the onBuildHeaders() method in the Settings.java file. The headers array is maintained internally to the Settings Activity and the only flexibility seems to be the Account mechanism mentioned above.
Read the details information from here .
Nice one example here.
Use android:settingsActivity in your Manifest. It works for Livewallpaper or Input Method. You can't use it for everything or for your particular App.
You will find this good for you.Check this
this will let you know many options to customize your App
Have a Look # this linkPreferenceActivity .

Categories

Resources