Android Google Drive API, file Change Notifications not working - android

I am working on google drive api, I am using https://github.com/googledrive/android-demos but not getting notification.
I am not seeing any notification when I changed metadata of selected file from web.
Does anyone succeeded, please provide a link or demo so that a hurdle can be remove.
I have checked similar question Google Drive Android API Change Notifications not working, as I am unable to comment on this question due to less reputation.

You can use change listeners to receive notifications whenever a specified file or folder has changes to its contents or metadata.
Based from Google Drive API for Androids on how to listen for change events:
A change listener implements the OnChangeListener interface for the
ChangeEvent and receives a direct callback from the Drive service to a
currently connected client application.
You can add a change listener by calling the DriveResourceClient.addChangeListener method, passing in the file or folder you want to receive notifications for.
getDriveResourceClient()
.addChangeListener(file, changeListener)
.addOnSuccessListener(this, listenerToken -> mChangeListenerToken = listenerToken);

Related

Firebase Dynamic Links - Can't get Url in android after install app from play store

If I install the app when clicking the dynamic link. All of that information from dynamic should be still available when I open the app for the first time.How can I get that information? It is not working when I use this: getInitialLink() returns Promise<string|null>;
Since, you haven't mentioned - I'm assuming you are having problems with shorter urls, if that's the case try putting the longer url.
Or refer here on Simon's answer: When I use the long instead of short links, everything works perfectly fine.
On Android, you use the getInvitation() method to get data from the Dynamic Link:
AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, false).setResultCallback
(/* ... */);
Then, in the callback, you can get the data passed in the Dynamic Links link parameter by calling the getDeepLink() method:
Firebase Documentation - Use Case
For future reference or detailed answer on Firebase Dynamic Links
Behave just like normal Links
In cases where the application doesn’t require installation (say, if it’s already installed) then clicking the Dynamic Link will automatically open the link to the desired screen.
Dynamic Links have a very simple process flow:
The user begins by clicking the Dynamic Link
If the the needs of the Dynamic Link target are satisfied (this is, the application being installed) then the user is navigated to the target location
Otherwise, if the application requires install in order to navigate
to the Dynamic Link target, the the user is taken to the point of
install for the application. Once the application has been installed,
the user is navigated to the target location of the Dynamic Link
And if that wasn’t all, we can integrate Dynamic Links with Firebase Analytics to track the interaction with any links that we generate for our applications. But if we only require simple tracking, then we can use the automatic built-in analytics from the Dynamic Links panel within the Firebase Console where we can also obtain attribution and referrer information for interacted links with no extra effort required from our side.
What makes it different from Google Analytics?
One of the first things that came to my mind when I read about Firebase Analytics was, “What about my Google Analytics setup?”. So if you already have Google Analytics in place, then why would you make the switch to Firebase Analytics? Well, here’s a couple of differences between the two:
Audiences
We can use Firebase Analytics to create Audiences — these are groups of users that we can then interact with using other Firebase service such as Firebase Notifications and / or Firebase Remote Config.
Integration with other Firebase Services
An awesome thing with Firebase Analytics is that we can integrate other Firebase services with analytics. For example, creating an Audience of users who have experienced a crash reported through Firebase Crash Reporting.
Lower Method Count
The Google Analytics dependency on Android has a total count of 18,607 methods and has a total of 4kb used for dependancies. On the other hand, Firebase Core (for Analytics) has a method count of 15,130 and only 1kb used for dependancies.
Automatic Tracking
When we add the firebase core dependency, it will automatically begin tracking a collection of user engagement events and device information for us — this is useful if you’re looking to only collect the minimal data for your app.
Unlimited Reporting
For up to 500 events, Firebase Analytics provides us with unlimited reporting straight out of the box for free!
No Singleton Initialisation
When setting up Google Analytics on Android we are required to initialize a Singleton instance. Firebase Analytics are simply available by fetching the instance directly from where we wish to track data. This isn’t much effort obviously but just makes the setup flow slightly easier.
Single Console
All of the data for every Firebase service is available for a single console. That makes it both easier and quicker for us to navigate from checking the analytic stats for our app to viewing the latest crash reports.
It looks like this is a react-native-firebase open bug for android
For fix the only thing that is required to be changed in module code:
private boolean isInvitation(PendingDynamicLinkData pendingDynamicLinkData) {
return FirebaseAppInvite.getInvitation(pendingDynamicLinkData) != null;
}
to
private boolean isInvitation(PendingDynamicLinkData pendingDynamicLinkData) {
FirebaseAppInvite invite = FirebaseAppInvite.getInvitation(pendingDynamicLinkData);
if (invite != null && invite.getInvitationId() != null && !invite.getInvitationId().isEmpty()) {
return true;
}
return false;
}
Bug reference : https://github.com/invertase/react-native-firebase/issues/1273
Please Check Your Manifest file
open AndroidManifest.file => In your activity tag there is intent-filter tag put below line in that tag.
<data android:scheme="https" android:host="your.dynamic.link" />
<data android:scheme="http" android:host="your.dynamic.link" />
If already done then check this link for the full blog on the dynamic link with react native.
Link: http://blog.logicwind.com/react-native-dynamic-links-using-firebase/
I hope this will help. sorry for the typos.

Creating Content Grouping on Android SDK

I am using the Android SDK to send data to Google Analytics. In this project I cannot use Firebase nor GTM. I should send hits directly to GA. I have already implemented everything, events included. But I cannot create Content Groupings. I think that the follow code is deprecated, isn't it?
mTracker tracker = GoogleAnalytics.getInstance(this).getTracker("UA-XXXXXXXX-X");
mTracker.set(contentGroup(1), "Level");
Which is the correct implementation for creating Content Grouping with the Android SDK without using other platforms (I mean sending everything directly to GA)?
Thanks a lot.

Disable iOS and Android App from App store and google play store with custom message to users

Is there a way to disable iOS and Android apps which are live, for a few hours and add some custom message to all users, Can this be done through itunesconnect for Apple or google developer console for andorid.
Note :- i dont want to release new Apps / change existing code.
max
I know you mentioned you don't want to release new apps or change existing code, but unfortunately for this level of customization you'll have to (to start!) There's no push of a button to do this for you for either dashboard.
There's multiple ways of doing this and there's no official documentation out there, so if this answer gets accepted by the OP still look around at other answers on this thread.
My approach is to listen to an endpoint that you create, may it be from dropbox, s3, parse, etc. that have certain key-value pairs that your application can retrieve and handle appropriately. To the level of customization is up to you.
Let's do the example of your "we're temporarily unavailable" idea. Have the endpoint do the following:
{
"unavailable" : false,
"unavailable_text" : "Sorry we'll be back shortly!"
}
Now on app start up you listen to this endpoint. One day the unavailable key will be true, when that happens in the success handler for the endpoint you'll put in some logic to present a UnavailableViewController of sorts that might have a UILabel called descriptionLabel
if ([json valueForKey:#"unavailable"]) {
UnavailableViewController* controller = [[UnavailableViewController alloc] init];
controller.descriptionLabel.text = ([json valueForKey:#"unavailable_text"]) ? [json valueForKey:#"unavailable_text"] : #"We're temporarily unavailable, please try again later."; // just in case you forget to set it have a fallback.
// present view controller...
}
Hope this helps! Let me know in comments of any questions/concerns.

Cannot access Google Drive file

I am making a notepad app using Google Drive. Whenever user creates a file in the app, it also creates a file in the Google Drive. And user can enter the text and save the file, the unsaved text will get committed whenever the internet is available. I am managing the update and create processes within the app using the DriveId.
If the user wants to use the files with the alternative device using my app, for that I also have the option called DriveId import. By clicking the option DriveId import user will be prompted with the input box for entering the existing DriveId. Using the DriveId I thought of opening the files, But it was giving an error.
Then I saw an answer given in this SO which clearly says DriveId can be used only inside the app and device which created the file.
I also found a similar question like mine in here SO But I can’t get my problem solved. I have taken ResourceId using result.getDriveFolder().getDriveId().getResourceId()
How to read the data’s programmatically using the ResourceID? As said in the above answer here I don’t want to change the track and go into Drive REST API. Is there a way that I can read the data using Google Drive Android API ? I have done all the development process, but in the ending when I try to access from other device it is giving the error. Totally struck.
If I can only read the data using REST API any simple code will be appreciated. Thanks in advance.
Finally Solved the DriveId Issue without REST API.
To get DriveId on the alternative device. You will need resourceId. You can use following code:-
String resourseId = "xxxxxxxxxxxxx"
Drive.DriveApi.fetchDriveId(mGoogleApiClient,resourseId).setResultCallback(idCallBack);
private ResultCallBack<DriveApi.DriveResult> idCallBack = new ResultCallback<DriveApi.DriveIdResult>() {
#Override
public void onResult(DriveApi.DriveIdResult driveIdResult) {
msg.Log("onResult");
DriveId id = driveIdResult.getDriveId(); //Here you go :)
}
}

Implementing Adword Remarketing with GTM Android

I am implementing GTM in Android project which will not use GoogleAnalytics SDK or Adword SDK,but I want data in Google Analytics and Adword.
In order to achieve this,
I have implemented Google Anaytics tag in GTM,Added Rule {Always},
Screen Name data is being sent to GTM which is reflected in Analytics,This is tested and working properly
I need InstallReferrals for Application which also should manage through GTM.
To achieve this,
Added a tag in GTM for Adword with the type Adword Remarketing,
Added ConversionId and label from Adword.
Added tagmanager.InstallReferralService and tagmanager.InstallReferralReceiver to Android manifest.xml.
According to source code of InstallReferralService it passes data to CampaignTrackingService of Analytics,which should upload data to Adword and Google Analytics.
But I am unable to get any data.
Please correct me if I am doing anything wrong in this process.
I also need Adword Conversion Tracking to be used through GTM without Adword SDK.
Not sure how to achieve this.

Categories

Resources