並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 28 件 / 28件

新着順 人気順

ContentProviderの検索結果1 - 28 件 / 28件

  • AndroidでContentProviderのモックを使ったテストを行う - 遥かへのスピードランナー

    ContentProviderからデータを取得しているアプリのテストコードを書くときに、テストデータとして端末内のデータを使わずにモックのデータを使いたいということは多いと思います。 今回は端末内の画像を一覧表示するアプリケーションを例にして、このようなテストコードの書き方を説明します。 テスト対象のActivity 以下のようなActivityをテストすることを考えます。 package com.polysfactory.mocktest; import android.app.ListActivity; import android.database.Cursor; import android.os.Bundle; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.

      AndroidでContentProviderのモックを使ったテストを行う - 遥かへのスピードランナー
    • ContentProviderのアクセス範囲 ――Dropboxにおける脆弱性の修正

      本連載では、セキュアコーディングスタンダード「CERT Oracle Secure Coding Standard for Java」の内容をベースに、Android特有の情報を交えつつ、堅牢なプログラムを開発するためのノウハウを具体的な事例とともに紹介していきます。第2回では、さっそくAndroidの話題をとりあげます。AndroidのContentProviderを使うときの注意点を解説します。 はじめに Androidにはデータを読み書き/共有するための仕組みとしてContentProviderがあります。データの読み書きを簡単に実装するためのインターフェースも備えていて便利なものです。また、Androidでは基本的に他のアプリケーションとデータをやり取りすることはできません。自分が作成したアプリケーションのデータを他のアプリケーションで利用してもらう場合、データを共有する方法の一つ

        ContentProviderのアクセス範囲 ――Dropboxにおける脆弱性の修正
      • ContentProviderから画像データを取得する | TechBooster

        また、IDの取得に用いるCursor#getColumnIndex()の引数には、MeiaStore.Images.Media._IDを指定します。 // Cursorの取得 Cursor cursor = managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, //The URI of the content provider to query null, //List of columns to return. null, //SQL WHERE clause. null, //The arguments to selection, if any's are present null //SQL ORDER BY clause. ); // Cursorを先頭へ移動 cursor.moveToFirst(); int fi

        • ContentProvider - Qiita

          何故 ContentProvider を使用するのか コンテンツプロバイダ (ContentProvider) と言えば、他アプリとのデータをやり取りをする為の仕組みであり SQLite を使用する為の最善の方法として知られているが、業務でこれを使用している場面を見ることはかなり少ない。何故なら SQLiteOpenHelper を直接使った方が遥かにシンプルで分かり易いからだ。あと、「他アプリとのデータのやり取り」というニーズが少なく、使用する魅力に乏しいように思える。 筆者が実際に業務で見た SQLite の取り扱いは以下のようなものだ: SQLiteOpenHelper を extends し Singleton に保ちつつ直に使用する DAO パターンを使用する (SQL の入力・出力用の JavaBeans を作成し、 それぞれ詰め直して内部で SQLiteOpenHelper

            ContentProvider - Qiita
          • Android Tips #32 CursorLoader で ContentProvider アクセスを非同期化する | DevelopersIO

            ContentProvider アクセスには CursorLoader を使おう Android アプリでデータベースを扱いたい場合は SQLite を使用しますが、他のアプリで使用している データベースへのアクセスには ContentProvider を使用して行います。 この ContentProvider に非同期でアクセスするための CursorLoader が Android 3.0 より導入されました (Support Package にも互換用クラスがあるので Android 1.6 から使用可能) 。今回はこの CursorLoader を使って簡単な電話帳一覧を作ってみたいと思います!今回も Support Package を使う場合の実装方法を解説します。 CursorLoader の使いかた CursorLoader は AsyncTaskLoader のサブクラスで

              Android Tips #32 CursorLoader で ContentProvider アクセスを非同期化する | DevelopersIO
            • コジオニルク - Android - ContentProviderとSQLite

              Android - ContentProviderとSQLite 何故ContentProviderを使用するのか コンテンツプロバイダ(ContentProvider)と言えば、他アプリとのデータをやり取りをする為の仕組みであり、SQLiteを使用する為の最善の方法として知られているが、 業務でこれを使用している場面を見ることはかなり少ない。何故ならSQLiteOpenHelperを直接使った方が遥かにシンプルで分かり易いからだ。 あと、「他アプリとのデータのやり取り」というニーズが少なく、使用する魅力に乏しいように思える。 筆者が実際に業務で見たSQLiteの取り扱いは以下のようなものだ。 SQLiteOpenHelperをextendsしSingletonに保ちつつ直に使用する(筆者はこれだった) DAOパターンを使用する(SQLの入力・出力用のJavaBeansを作成し、それぞれ詰

              • ContentProvider で特定のアプリにのみ利用を許可する - おともだちティータイム

                ContentProvider の利用を制限したい事ってありますよね。あると思います。その方法について調べてみました。 Permission コンテントプロバイダを公開しない方法 - haruserのめもちょ この方法だと、同一署名からの許可のみしか行なえない。もっと柔軟に制限したい。 grantUriPermission grantUriPermission を使えば、パッケージ名単位で Permission を切り替えることが出来る。 9. セキュリティと許可 - ソフトウェア技術ドキュメントを勝手に翻訳 provider - ソフトウェア技術ドキュメントを勝手に翻訳 grant-uri-permission - ソフトウェア技術ドキュメントを勝手に翻訳 Context | Android Developers ただ、 grantUriPermission には大きな問題があって、 U

                  ContentProvider で特定のアプリにのみ利用を許可する - おともだちティータイム
                • Android ContentProviderからデータを取得する方法 | TechBooster

                  ※_IDは必須要素です。要素が多いため一部のみを掲載しています。 連絡先の場合、CommonDataKinds.Phontとして以下のとおり用意されています。 _ID:ContactsContract.CommonDataKinds.Phone._ID _COUNT:ContactsContract.CommonDataKinds.Phone._COUNT 表示名:ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME 電話番号:ContactsContract.CommonDataKinds.Phone.NUMBER ContentURIとこれらデータ構造の要素を組み合わせてContentProviderから任意の情報を取得します。 連絡先(Contacts)から名前を取得する 連絡先にアクセスするにはパーミッション設定が必要です。事前にA

                  • ContentProviderでアプリケーションのデータを共有する その1 - プログラミング雑記

                    今回は題名にある通り、ContentProviderを使ったデータの共有方法について説明してみたいと思います。 アプリケーションのデータを保存する手段としては、SQLiteを利用するのが一般的だと思いますが、場合によってはその蓄積したデータを他のアプリケーションからも利用したいと思うことが多々あると思います。 そんな場合はContentProviderをアプリに実装することで、そのデータを外部に公開することが可能です。 ContentProviderの詳細な説明については、他サイトを参考にして頂ければ良いと思います。 ContentProviderを使って、不特定多数のアプリにデータを公開する 図で説明すると、次のような感じになります。 例として、プロジェクトAとプロジェクトBがあるとします。 プロジェクトAのデータに対して、プロジェクトBがプロジェクトAのContentProviderを

                      ContentProviderでアプリケーションのデータを共有する その1 - プログラミング雑記
                    • ContentProviderで通話履歴を取得する | TechBooster

                      電話帳に登録されていればCACHED_NAMEで名前を取得することができます。登録されていない番号の場合はnullが入っています。 種別(TYPE)は以下の値が入っています。 INCOMING_TYPE – 1:着信 OUTGOING_TYPE – 2:発信 OUTGOING_TYPE – 3:不在着信 他にも通話時間など取得できる情報があるので詳細はAndroidDeveloperを参照してください。 http://developer.android.com/intl/ja/reference/android/provider/CallLog.Calls.html サンプルソース サンプルでは日付、電話番号、名前、種別をログに出力します。 ContentResolver contentResolver = getContentResolver(); // ソートする条件 String o

                      • ContentProviderでデータを共有する その2 - プログラミング雑記

                        前回に引き続き、ContentProviderの使い方について説明します。 前回のContentProviderを使った記事では、作成したアプリケーションのDBに対して、不特定多数のアプリからアクセス出来る事を確認しました。 しかし、不特定多数のアプリからではなく、特定のアプリケーションにのみアクセスを許可したい場合もあると思います。 今回はContentProviderとPermissionを使って、署名が同じアプリケーションのみDBアクセスが可能なアプリケーションを作成してみようと思います。 前回作成したプロジェクトをそのまま流用しますので、プロジェクトの作成はこちらを参照してください。 又、プロジェクトを作成するのが面倒な方は、こちらよりプロジェクト一式をダウンロードできます。 → http://www.geocities.jp/finnissy/Blog/android_A_B.z

                          ContentProviderでデータを共有する その2 - プログラミング雑記
                        • ProductFlavor を宣言した時の、手軽な ContentProvider の Authority の扱い方 - Qiita

                          ProductFlavor を宣言した時の、手軽な ContentProvider の Authority の扱い方JavaAndroidGroovygradle ProductFlavor による用途別の apk の生成 ProductFlavor とは Gradle で ProductFlavor を使うと、用途別に apk を作り分けることができます。 例えば、バックエンドを開発用のものと本番用のものとを用意して適宜切り替えたり、課金版と無料版とを切り替えたり、といった具合に、apk を作り分けることができます。 apk を作り分けるにあたって、パッケージ名を ProductFlavor 毎に定義することもでき、これによって、用途別に作り分けた apk を一つの端末上に共存させることが出来るようになります。 ContentProvider を持つアプリでの ProductFlavor

                            ProductFlavor を宣言した時の、手軽な ContentProvider の Authority の扱い方 - Qiita
                          • Android ContentProviderのexport指定が使えない

                            こんにちは。 タオソフトウエアの杉山です。 今回は炊飯について取り上げます! 電気からガスへ 慣れると戻れない できるだけ大きな家電を買わずにすますため、 島へ移住の話【家電品 – 使わなくなった電子レンジ– 】 で触れた通り、もともと電子レンジで炊飯していました。これが水や米が変わっても使えそうな炊飯釜などを調べている中で、炊飯にガスを使うようになりました。 子どもの頃の実家のご飯も電気釜で、人生のほとんどは電気で炊飯されたご飯を食べてきました。ガスで炊飯するのは小学生の授業での経験ぐらいしかなかったですが、普段の生活で電気からガスへ変えてみたら意外と早く時間短縮になるので驚いています。 ガス代は少し上がりますが急上昇するようなことは無く、電気代が下がったので安上がりになりました。大島はプロパンガスのため、都市ガスだともっと安くなるかなと感じています。 昔のガス釜の炊飯器は壊れず美味しい

                            • ContentProviderでアプリ内のファイルを公開するサンプル - あられねこのめも

                              ContentProviderを使って、asset内のファイルをGMailに添付ファイルとして渡すサンプルです。 アプリ内のassets配下のファイルをIntent経由でほかのアプリに渡したい場合も動作します。 当時、ContentProviderがよくわかっていないこともあり、プロジェクトのassets配下のファイルが添付できなくてかなり悩みましたが、ContentProviderのリファレンスにちゃんと書いてあった・・・。 概要 Intent経由でアプリからGMailを起動したときに、ContentProviderを使って添付ファイルを渡します。 実装するものは以下のとおりです。 AssetFileProvider コンテンツプロバイダ。 アプリ内のAssetファイルを渡します。insert,update,deleteなどは実装しません。 FileProvider コンテンツプロバイダ

                              • Android ContentProviderからデータを取得する方法 | TechBooster

                                ※_IDは必須要素です。要素が多いため一部のみを掲載しています。 連絡先の場合、CommonDataKinds.Phontとして以下のとおり用意されています。 _ID:ContactsContract.CommonDataKinds.Phone._ID _COUNT:ContactsContract.CommonDataKinds.Phone._COUNT 表示名:ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME 電話番号:ContactsContract.CommonDataKinds.Phone.NUMBER ContentURIとこれらデータ構造の要素を組み合わせてContentProviderから任意の情報を取得します。 連絡先(Contacts)から名前を取得する 連絡先にアクセスするにはパーミッション設定が必要です。事前にA

                                  Android ContentProviderからデータを取得する方法 | TechBooster
                                • Android:contentコマンドでContentProviderを呼び出す

                                  Android4.1.1以降、コマンドラインユーティリティにcontentコマンドが追加されました。 サンプルコマンド: $ content query --uri content://yuki.authority/ このコマンドは、コンテンツへのCRUD操作をコンテンツプロバイダ経由で実行します。 例えば、データベースレコードの検索や削除などが可能です。 SQLite3コマンドでも同様にデータベースの編集が可能ですが、 SQLite3コマンドの対象がデータベースであるのに対して、contentコマンドの対象はコンテンツプロバイダです。 これはつまり、 コンテンツプロバイダの簡単な動作確認として使用可能 コンテンツプロバイダを経由するため、コンテンツオブサーバへの通知も実行される といったメリットがあります。 ●contentコマンドの使い方 使い方は & adb shell conten

                                  • GitHub - BoD/android-contentprovider-generator: A tool to generate Android ContentProviders.

                                    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                      GitHub - BoD/android-contentprovider-generator: A tool to generate Android ContentProviders.
                                    • コジオニルク - Android - ContentProvider実装例

                                      Android - ContentProvider実装例 以下、URIパターンを「content://(authority)/(table)」と「content://(authority)/(table)/(_id)」のみに絞った形での「1コンテンツプロバイダに対し複数テーブル」の実装例である。 もしもう少し込み入ったパターン(content://(authority)/(table)/(_id)/(group)/(group_pos)」のような)にも対応しようとするともう少し工夫が要る。 UriMatcherは、「指定されたauthorityとpathのパターンに合致したら指定したIDを返却する」というマッピング作業を行なってくれる。 ワイルドカードとして「#」は任意の整数値、「*」は任意の文字列パターンと合致させることができる。 /** * アプリ内部のSQLiteを扱う為のコンテンツ

                                      • ContentProvider で Stream を使って大きなデータをやりとりしよう - おともだちティータイム

                                        ContentResolver から openInputStream/openOutputStream を開くことが出来、これを利用すれば ContentProvider 経由で IPC に乗らない (だいたい 50KB 以上) データをやり取りすることが出来ます。 どういう風に ContentProvider を実装すれば Stream のやりとりが出来るようになるのか。僕は Android アプリのチュートリアルページから次のような部分を見付けました。 Content Providers - Android Developers 3. コンテンツプロバイダ - ソフトウェア技術ドキュメントを勝手に翻訳 テーブルに投入するには大きすぎるようなバイトデータ ( 大きなビットマップファイルのような ) を公開する場合は、実際にそこにある content: URI を含め、クライアントにそのデ

                                          ContentProvider で Stream を使って大きなデータをやりとりしよう - おともだちティータイム
                                        • ContentProviderのqueryメソッドでdistinct、limitなどを指定する方法 - _development,

                                          ContentProviderのqueryメソッドにdistinct、limitなどを指定する方法です。 ContentProviderのqueryメソッドはSQLIteDatabaseのqueryメソッドに比べて指定できる項目が少なくなっています。 例えば、limit、distinctなどが指定できません。 このような引数を指定する場合には、UriのqueryParameterを利用します。 以下の例はdistinctとlimitを指定しています。 Uri uri = Uri.parse("content://example.com/") .buildUpon() .appendQueryParameter("distinct", "true") .appendQueryParameter("limit", "100") .build(); getContentResolver().qu

                                            ContentProviderのqueryメソッドでdistinct、limitなどを指定する方法 - _development,
                                          • Android ContentProviderからデータを取得する方法 | TechBooster

                                            ※_IDは必須要素です。要素が多いため一部のみを掲載しています。 連絡先の場合、CommonDataKinds.Phontとして以下のとおり用意されています。 _ID:ContactsContract.CommonDataKinds.Phone._ID _COUNT:ContactsContract.CommonDataKinds.Phone._COUNT 表示名:ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME 電話番号:ContactsContract.CommonDataKinds.Phone.NUMBER ContentURIとこれらデータ構造の要素を組み合わせてContentProviderから任意の情報を取得します。 連絡先(Contacts)から名前を取得する 連絡先にアクセスするにはパーミッション設定が必要です。事前にA

                                            • Android ContentProviderの制限 同じ証明書を持ったアプリのみアクセス可能に する。

                                              Android ContentProviderの制限 同じ証明書を持ったアプリのみアクセス可能に する。 昨日の記事、Android ContetProviderを非公開にする方法にて、exportでの制限について記載しましたが、まとまりが悪いので、証明書を使ったアクセス制限についてです。 (ついでに昨日の記事も書きなぐりでしたので少しわかりやすいように修正しました) 同じ証明書を持ったアプリのみコンテントプロパイダにアクセス可能にするので、実質他のアプリからのアクセス制限が可能になります。 コンテントプロパイダを非公開にする方法と似ていますが、シェアードユーザIDは異なり、証明書のみ同じケースです。 密接に関連している2つのアプリケーションの場合は、シェアードユーザIDを同じにしてもかまいませんが、祖結合の場合はシェアードユーザIDは同じにしないので、証明書のみを利用したアクセス制限を利

                                              • Realm with ContentProvider

                                                I tried to implement realm-java with ContentProvider.

                                                  Realm with ContentProvider
                                                • ContentProviderでファイルを提供する | GE Android Blog

                                                  今回はAndroidの特徴の一つであるデータ連携のためのコンテンツプロバイダを作成してみます。 コンテンツプロバイダは外部のアプリケーションに様々な情報を提供することができる仕組みでデータベースや画像、各種ファイルなどを提供できます。 作成方法としてはContentProviderクラスを拡張したクラスを作成し、データ提供の仕組みを作成していきます。 提供できるデータはデータベースの情報や画像、HTMLファイルなど様々なものがありますが、今回はテキストファイルの提供を行うサンプルを作成します。 ファイルの提供方法(ContentProviderのメッソドを上書き) ・assetsフォルダ内のファイルの提供 openAssetFile(URI uri,String mode) ・指定場所からのファイルの提供 openFile(URI uri,String mode) 提供さ

                                                  • Android:1つのDBに複数のContentProvider

                                                    データベースの構造が複雑化すると、これを扱うContentProviderも複雑になりがちです。 そんな時はContentProviderを分割するのも1つの方法です。 今回は複数のContentProviderで1つのデータベースを管理する方法について。 複雑な構造をもつデータベースを、たった1つのプロバイダが管理するのは大変です。 この場合、ContentProviderを分類毎や各機能毎に分割すれば複雑化を回避することができます。 また、ContentProviderの分割はセキュリティの向上にも役立ちます。 簡単な例を示します。 あなたのアプリが持つデータベースの状態が下記の場合... 1つのデータベースにデータタイプの異なるテーブルが複数存在する それぞれのテーブルは大きい、小さい、複雑、単純と様々 いくつかのテーブルは外部アプリに提供する情報。いくつかのテーブルは非公開情報 複

                                                      Android:1つのDBに複数のContentProvider
                                                    • Kojionilk Blog - ContentProvider と SQLite

                                                      何故 ContentProvider を使用するのか コンテンツプロバイダ (ContentProvider) と言えば、 他アプリとのデータをやり取りをする為の仕組みであり、 SQLite を使用する為の最善の方法として知られているが、 業務でこれを使用している場面を見ることはかなり少ない。 何故なら SQLiteOpenHelper を直接使った方が遥かにシンプルで分かり易いからだ。 あと、 「他アプリとのデータのやり取り」というニーズが少なく、 使用する魅力に乏しいように思える。 筆者が実際に業務で見た SQLite の取り扱いは以下のようなものだ: SQLiteOpenHelper を extends し Singleton に保ちつつ直に使用する (筆者はこれだった) DAO パターンを使用する (SQL の入力・出力用の JavaBeans を作成し、 それぞれ詰め直して内部で

                                                      • Using build types in Gradle to run same app that uses ContentProvider on one device

                                                        I have set up Gradle to add package name suffix to my debug app so I could have release version that I'm using and debug version on one phone. I was referencing this: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Types My build.gradle file looks like this: ... android { ... buildTypes { debug { packageNameSuffix ".debug" versionNameSuffix " debug" } } } Everything works

                                                          Using build types in Gradle to run same app that uses ContentProvider on one device
                                                        • ContentProviderから画像データを取得する | TechBooster

                                                          また、IDの取得に用いるCursor#getColumnIndex()の引数には、MeiaStore.Images.Media._IDを指定します。 // Cursorの取得 Cursor cursor = managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, //The URI of the content provider to query null, //List of columns to return. null, //SQL WHERE clause. null, //The arguments to selection, if any's are present null //SQL ORDER BY clause. ); // Cursorを先頭へ移動 cursor.moveToFirst(); int fi

                                                            ContentProviderから画像データを取得する | TechBooster
                                                          1