發表文章

目前顯示的是 1月, 2019的文章

Android get file extension 取得文件的副檔名

筆記用途 // 取得文件的副檔名 private String getFileExtension(Uri uri) { ContentResolver contentResolver = getContentResolver(); MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton(); return mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(uri)); } Done.

Android ContentProvider 實現多個應用程式共享資料

圖片
這篇文章探討的是如何在 單個 應用程式或者 多個 應用程式間做出 安全的共享資料 功能,此篇會運用到  ContentProvider + SQLite , ContentProvider為應用間的數據交互提供了一個安全的環境。它準許你把自己的應用數據根據需求開放給其它應用進行 新增(insert)、刪除(delete)、修改(update)、查詢(query) ,而不用擔心直接開放數據庫權限而帶來的安全問題。

Android FirebaseUI for Cloud Firestore - FirestoreRecyclerAdapter

根據上一篇 FireStore 文章的延伸, 今天這篇打算分享  FirestoreRecyclerAdapter , FirestoreRecyclerAdapter  是  FirebaseUI-Android  的其中一個部分的工具,在學習 firestore 發現這個東西非常好用 ,順便自己做個筆記用途,如有錯誤的地方,敬請留言告知。

Android 8.0 Oreo 通知頻道Notification channels

圖片
這是在我們針對API 26(Oreo)的應用中更新我們的FCM內容的快速提示。 我不得不更新當前的應用程序(將targetSdkVersion更改為26)以支持Android Oreo(8.0)。一切都很好(在以前的版本中),但在 Oreo,這不是快樂的情況。通知未按預期工作:當設備收到推送通知時,應用程序崩潰。這是logcat中的例外: Fatal Exception: java.lang.RuntimeException: Unable to start receiver com.google.firebase.iid.FirebaseInstanceIdInternalReceiver: java.lang.IllegalStateException: Not allowed to start service Intent { act=com.google.firebase.INSTANCE_ID_EVENT pkg=PACKAGE cmp=COMPONENT }: app is in background uid UidRecord{c5e5e69 u0a325 RCVR bg:+1m25s411ms idle procs:1 seq(0,0,0)} at android.app.ActivityThread.handleReceiver(ActivityThread.java:3397) at android.app.ActivityThread.-wrap18(Unknown Source) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1780) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6938) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.Zygote$MethodAndAr

Android Cloud Firestore - Real-time database

圖片
Cloud Firestore 是一個靈活,可擴展的數據庫,用於從 Firebase 和 Google Cloud Platform 進行移動,Web和服務器開發。與 Firebase 實時數據庫一樣,它可以通過 實時監聽器 使您的數據在客戶端應用程序之間 保持同步 ,並為移動和Web提供 離線支持 ,因此您可以構建響應式應用程序,無論網絡延遲或 Internet 連接如何,都能正常運行。 Cloud Firestore 還提供與其他 Firebase 和 Google Cloud Platform 產品的無縫集成,包括雲功能。

RecyclerView 使用ItemTouchHelper實現滑動刪除、拖移改變順序效果

圖片
前置作業創建RecyclerView、Adapter我這邊就不贅述了 直接進入主題 我們會使用到 ItemTouchHelper工具類別 官方解釋:這是一個實用工具類,用於添加滑動以關閉和拖放支持到RecyclerView。 這是一個支持RecyclerView滑動刪除和拖拽的實用工具類 如何使用: SimpleCallback建立時,需要指定想要支援的拖拉(move)與swipe的方向,在此範例我們讓他可以上下拖拉跟左右swipe(或用START、END,則可支援右到左方向的排列), 而主要需要實作的函式有分別對應到拖拉與swipe的 onMove 與 onSwipe 。 private void setUpRecyclerView() { adapter = new ContactAdapter(options); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setAdapter(adapter); // 實現拖移、左右滑動刪除的效果 new ItemTouchHelper(new ItemTouchHelper.SimpleCallback( ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.RIGHT | ItemTouchHelper.LEFT) { @Override public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder viewHolder1) { // 上下拖移callback return false; } @Override

Android 更改Toolbar actionBar button icon

很多的Android應用左上角都有返回按鈕 在默認的情況下ADT會默認給一個返回圖標 而作為開發需求很多都要求定制一個新的圖標 在Android的網站上發現了2種可以更改的方法

在設置了android:parentActivityName後,點擊子Activity返回鍵,父Activity總會調用OnDestroy()的解決方案

一個Activity在manifet裡聲明了 android:parentActivityName ;這時候通過Activity左上角的返回按鈕點擊返回,啟動聲明的父Activity,總會先調用父Activity的OnDestroy方法,具體如下面所說: <activity android:name=".NewContactActivity" android:parentActivityName=".MainActivity"/>

Android firebase notification message type

圖片
這篇講述自己在開發時遇到的問題,使用方法網路上很多,這邊就不再贅述。 直接進入問題點 問題描述: FirebaseMessagingService 的 onMessageReceived 裡面收到推播時,設定大圖示彩色 icon ,還有一個顯示小 icon ,需求是 icon 設定為 大圖示彩色 icon  。