アプリの自動インストール

4,257 views
Skip to first unread message

やまだ

unread,
Nov 9, 2011, 1:23:25 AM11/9/11
to 日本Androidの会
行き詰ってしまったので質問させて下さい。

現在、下記のようなシステムを開発中なのですが最後の部分で行き詰っています。
アドバイス等ありましたらお願いします。
端末からアプリを検索→サーバー側でAndroid Market APIでアイコン、パーミッション情報を取得→
端末へ表示→端末のインストールボタン押下→※アプリのインストール開始

最後のインストールさせる部分がどうしてよいかわかりません。
実現可能でしょうか?

Taizo Nakatani

unread,
Nov 9, 2011, 1:37:32 AM11/9/11
to android-g...@googlegroups.com
中谷です。


Android Market APIでAPKを取得することが出来るのであれば
サーバーでAPK取得
→ 端末でAPKダウンロード
→ APKをインストールするためのIntent発行
で可能だと思います。
この場合端末の設定にある「提供元不明のアプリ」に
チェックが入っている必要があります。

APKを取得できないのであれば
該当のアプリを表示するIntentを発行
→ マーケットアプリからユーザーがインストール
以外の方法は無いと思われます。

2011年11月9日15:23 やまだ <taroya...@gmail.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

Makoto Yamazaki

unread,
Nov 9, 2011, 2:26:29 AM11/9/11
to android-g...@googlegroups.com
zaki です。

> 端末へ表示→端末のインストールボタン押下
という部分がマーケットアプリで良いのであれば、以下のような Intent を
startActivity に渡すことで実現可能です。

String packageName = "com.example.app"; // たとえば

Uri uri = Uri.parse("market://details?id=" + packageName);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);

NEW_TASK フラグ付けたほうがいいとか、startActivityForResult() にするとかは
お好みで。

2011/11/9 やまだ <taroya...@gmail.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

--
YAMAZAKI Makoto

やまだ

unread,
Nov 9, 2011, 9:19:43 PM11/9/11
to 日本Androidの会
中谷様、zaki様

ご返信有難うございます、山田です。

言葉が足りなかったようですので補足させて下さい。

Android Marketに上がっているアプリであるのが前提条件です。
また、複数のアプリを一括でインストールしたいという要件です。

Intent intent = new Intent(Intent.ACTION_VIEW, uri);
ですと、一度マーケットにアクセスし、マーケットのインストールボタンを押下するという作業が発生し
その作業を1つ1つのアプリに対して行うこととなります。

そうではなく、端末に表示された複数のアプリをチェックし、アプリ内のインストールボタンを押下した際に
自動でインストールが始まるようにしたいのです。

実際にそのような処理を行なっているアプリを見たことがあるので実装可能だと思うのですが、実装方法がわかりません。
そのアプリでは、インストールボタンを押下した際にサーバー側からマーケットへアクセスしているようでした。

どのような処理かわかりますでしょうか?

度々すみませんが、お力をお貸しください。
よろしくお願い致します。



ohisamallc

unread,
Nov 11, 2011, 6:06:28 PM11/11/11
to android-g...@googlegroups.com
山形のohisamaです。
山形では、①は「いちまる」と読みます。
がんばろう、東北。

興味があったんで調べて見ました。
真っ当な方法は、見つかりません。

以下、3つの方法が考えられます。
①rootを奪取する。
②アプリにINSTALL_PACKAGESを付与する。
③adbを活用する。

自分は、いずれも実現できません。

やまだ

unread,
Nov 13, 2011, 7:20:14 PM11/13/11
to 日本Androidの会
ohisama様

ご返信有難うございます、山田です。

ご提案頂いたいずれの方法もアプリ側の処理だと思いますし、
一括でインストールしたいapkファイルが端末もしくはストレージに入っている前提ではないでしょうか?

既存の同処理を行なっているアプリではアプリ側のインストールボタンを押下して
アカウント情報をパラメータとしてサーバー側へリクエストし、finish()しています。

おそらくはサーバー側のphp等のソースからマーケットへ直接アクセスし、インストールさせる方法があると思うのです。

引き続き質問を継続させてください。

よろしくお願い致します。
Message has been deleted

typex20

unread,
Nov 13, 2011, 9:19:09 PM11/13/11
to 日本Androidの会
やまださん

とつきえブログのなかのひと、typex20です。はじめまして。

先ほどは書きかけのものを投稿してしまい申し訳ありません。

「既存の同処理を行なっているアプリ」とは具体的にはなんという名前のアプリなのでしょうか?

それがわかると皆さんも回答しやすいと思います。

やまだ

unread,
Dec 6, 2011, 3:00:53 AM12/6/11
to 日本Androidの会
typex20様

返信遅くなってしまい申し訳ありません。
諸事情によりこの場でそのアプリ名は公開できないのですが
直接gmailに送らせて頂けるのであれば情報を送らせて頂きます。

申し訳ありませんが、よろしくお願い致します。

また、ソースを解析していて
http://typex2.wordpress.com/2009/09/29/android-market%E3%81%AE%E3%83%8F%E3%83%83%E3%82%AF%E4%BA%8B%E6%83%85%EF%BC%9Avending%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%9A%E3%81%ABandroid-market%E3%81%AE%E3%83%95%E3%83%AA/
でtypex20様が書かれている方法で行なっているんだと思いました。

しかし、その場合においてもプログラム的にUserIdを取得する方法がわかりません。

黒猫ニャモン

unread,
Dec 6, 2011, 7:11:54 PM12/6/11
to android-g...@googlegroups.com
スマコレというアプリがそのような動きをしますね。

スマコレ内で提供されているテーマを選択すると、そのテーマに定義された、ホームアプリ&複数のアプリが自動でインストールされるようです。

やまだ

unread,
Dec 6, 2011, 7:22:20 PM12/6/11
to 日本Androidの会
黒猫ニャモン様

ご返信有難うございます。
スマコレというアプリは知らなかったのですが、こちらはどこからインストールできますでしょうか?
マーケットで検索しても見つからなかったのですが。。。

すみませんが、よろしくお願い致します。

黒猫ニャモン

unread,
Dec 6, 2011, 8:25:25 PM12/6/11
to android-g...@googlegroups.com
失礼しました。スマセレでした。

Softbankの端末にプリインストールされているもので、マーケットからは手に入らないようです。

手持ちの003SHでは、プリインストールされていませんでしたが、

メジャーアップ後にプリインストールされました。(消せない)

Softbank端末でないとご確認いただけませんね・・・

やまだ

unread,
Dec 6, 2011, 9:15:37 PM12/6/11
to 日本Androidの会
黒猫ニャモン様
手持ちにsoftbank端末がないので、ネットで検索した情報を元に返信させて頂きます。
挙動は似ていると思いますが、こちらでダウンロード可能なアプリはスマセレ用のアプリであってマーケットのものとは別物ではないでしょうか?
しかし、提供元不明~にチェックしなくてもインストールできるようですのでこれはこれで不思議なのですが。

On 12月7日, 午前10:25, 黒猫ニャモン <kuroneko.nya...@gmail.com> wrote:
> 失礼しました。スマセレでした。
>
> Softbankの端末にプリインストールされているもので、マーケットからは手に入らないようです。http://mb.softbank.jp/mb/service/smasele/
>
> 手持ちの003SHでは、プリインストールされていませんでしたが、http://galapagossquare.com/?p=6240
>
> メジャーアップ後にプリインストールされました。(消せない)http://ad-dl02.4sh.jp/verupflo/dash/download/tools/updatetool/s/003sh...
>
> Softbank端末でないとご確認いただけませんね・・・

sakamoto toshiyuki

unread,
Dec 6, 2011, 9:54:13 PM12/6/11
to android-g...@googlegroups.com
こんにちは。坂本といいます。

興味のある話題だったのでずっとROMしてましたが、プリインアプリの話でしたか。

プリインアプリなら、Androidの隠しAPIにあるPackageManager#installPackageが使えます。
AndroidのOS全体をコンパイルするときに、packages/以下にあるプリインアプリなら利用でき、一般のアプリでは利用できません。
/data/appにインストールされるアプリでは無く、/system/app以下にインストールされるアプリなら可能と言うことです。
AndroidMarketのMarketアプリも、このAPIを使用しているはずです。


それでは


2011年12月7日11:15 やまだ <taroya...@gmail.com>:

> --

やまだ

unread,
Dec 7, 2011, 12:36:44 AM12/7/11
to 日本Androidの会
坂本様

installPackageは存じていましたが「提供元不明~」のチェックがなくてもいけるのは
また少し違う何かがあるのかなと思います。

また、初めの質問と少しずれてきてしまったので話を戻したいと思います。

UserIdさえプログラムから取得できれば解決するような気がしているのですけどねぇ。。。

On 12月7日, 午前11:54, sakamoto toshiyuki <sakamoto.n...@gmail.com> wrote:
> こんにちは。坂本といいます。
>
> 興味のある話題だったのでずっとROMしてましたが、プリインアプリの話でしたか。
>
> プリインアプリなら、Androidの隠しAPIにあるPackageManager#installPackageが使えます。
> AndroidのOS全体をコンパイルするときに、packages/以下にあるプリインアプリなら利用でき、一般のアプリでは利用できません。
> /data/appにインストールされるアプリでは無く、/system/app以下にインストールされるアプリなら可能と言うことです。
> AndroidMarketのMarketアプリも、このAPIを使用しているはずです。
>
> それでは
>

> 2011年12月7日11:15 やまだ <taroyamada...@gmail.com>:

田代透

unread,
Dec 7, 2011, 12:53:50 AM12/7/11
to android-g...@googlegroups.com
SoftBankはスマセレ用の隠しマーケットでも作っているのじゃないでしょうか。
Googleのマーケット以外の特定のマーケットを提供元不明ではないと設定してあるとか
スマセレアプリはルート特権で動くようになっているとか

可能性ですが

2011年12月7日14:36 やまだ <taroya...@gmail.com>:

--
--
Toru Tashiro
toru...@gmail.com

やまだ

unread,
Dec 7, 2011, 3:53:09 AM12/7/11
to 日本Androidの会
田代様

確かにキャリアが公式でやってるのだから可能性としてはありそうですよね。
普通の会社じゃ無理でしょうが。

On 12月7日, 午後2:53, 田代透 <toru2...@gmail.com> wrote:
> SoftBankはスマセレ用の隠しマーケットでも作っているのじゃないでしょうか。
> Googleのマーケット以外の特定のマーケットを提供元不明ではないと設定してあるとか
> スマセレアプリはルート特権で動くようになっているとか
>
> 可能性ですが
>

> 2011年12月7日14:36 やまだ <taroyamada...@gmail.com>:

> toru2...@gmail.com

高見知英

unread,
Dec 7, 2011, 4:51:14 AM12/7/11
to android-g...@googlegroups.com

高見知英です。

アプリケーションの(提供元不明の...をチェックしないでの)インストールには、INSTALL_PACKAGESという権限が必要です。
この権限はprotectionLevelがsignatureOrSystemとなっており、このprotectionLevelに設定された権限を行使できるのは「プリインストール(/system/app配下)アプリかそれと同じ署名を持つアプリ」のみです。
ソフトバンクのスマセレ、auのau one marketなどはそれを使用していると思われます。
概要はわたしのブログにも記載しておりますのでご覧ください。
http://d.hatena.ne.jp/TakamiChie/20111117/1321540557

一般の開発者がこの権限を使用することはできないため、
・マーケットに誘導してダウンロードさせる
・ユーザーに「提供元不明の...」の設定にチェックしてもらう
・(adbを使ってもよければ)adb installを使う
・(端末がroot取得済みであれば)/system/appにアプリをインストールしてINSTALL_PACKAGESを行使する

などといった形での対応となると思われます。

以上です。
--
横浜IT勉強会 高見知英
メール:ch...@tamago.soup.jp
Web:http://Onpu.jpn.ch/
Tw: @TakamiChie ハマっち:16872
Skype:TakamiChie

2011/12/07 17:53 "やまだ" <taroya...@gmail.com>:

Tetsuro Nakamura

unread,
Dec 7, 2011, 6:43:22 AM12/7/11
to android-g...@googlegroups.com

t2lowと申します。

やまださんが行いたいのは、AppBrainというアプリの動作が近いのではないかと思います。

https://market.android.com/details?id=com.appspot.swisscodemonkeys.apps

AppBrainはAndroid Marketでダウンロード可能なアプリですが、バックグラウンドでのアプリインストールを実現しています。
どういった仕組みなのかはわかりません。
最初にGoogleアカウントでログインさせるので、何かAPIがあるのかもしれません。
システム権限がなくてもGoogleアカウントでの認証さえおこなえば、同じことができそうな気がするのですが浅知恵でしょうか。

以上です。

2011/12/07 18:51 "高見知英" <ch...@tamago.soup.jp>:

やまだ

unread,
Dec 7, 2011, 7:24:43 PM12/7/11
to 日本Androidの会
高見様

rootを取得したり、adbを使ったりというのはちょっと無理そうです。
やはり、妥協してマーケットへ移動させて一つ一つインストールというのが現実的ですかね~。

t2low様

はい、こちらのFast Web Installerの挙動が、私のやりたい事そのままだと思います。
AccountManagerを使って許可を求める画面が表示されますが、
結局はUserIDを取得するためにアカウントを使っているのかなと勝手に想像してました。

どうやってやっているのか解析してみようと思います。

On 12月7日, 午後8:43, Tetsuro Nakamura <t2lo...@gmail.com> wrote:
> t2lowと申します。
>
> やまださんが行いたいのは、AppBrainというアプリの動作が近いのではないかと思います。
>
> https://market.android.com/details?id=com.appspot.swisscodemonkeys.apps
>
> AppBrainはAndroid Marketでダウンロード可能なアプリですが、バックグラウンドでのアプリインストールを実現しています。
> どういった仕組みなのかはわかりません。
> 最初にGoogleアカウントでログインさせるので、何かAPIがあるのかもしれません。
> システム権限がなくてもGoogleアカウントでの認証さえおこなえば、同じことができそうな気がするのですが浅知恵でしょうか。
>
> 以上です。

> 2011/12/07 18:51 "高見知英" <c...@tamago.soup.jp>:
>
>
>
>
>
>
>
> > 高見知英です。
>
> > アプリケーションの(提供元不明の...をチェックしないでの)インストールには、INSTALL_PACKAGESという権限が必要です。
>
> > この権限はprotectionLevelがsignatureOrSystemとなっており、このprotectionLevelに設定された権限を行使でき るのは「プリインストール(/system/app配下)アプリかそれと同じ署名を持つアプリ」のみです。


> > ソフトバンクのスマセレ、auのau one marketなどはそれを使用していると思われます。
> > 概要はわたしのブログにも記載しておりますのでご覧ください。
> >http://d.hatena.ne.jp/TakamiChie/20111117/1321540557
>
> > 一般の開発者がこの権限を使用することはできないため、
> > ・マーケットに誘導してダウンロードさせる
> > ・ユーザーに「提供元不明の...」の設定にチェックしてもらう
> > ・(adbを使ってもよければ)adb installを使う
> > ・(端末がroot取得済みであれば)/system/appにアプリをインストールしてINSTALL_PACKAGESを行使する
>
> > などといった形での対応となると思われます。
>
> > 以上です。
> > --
> > 横浜IT勉強会 高見知英

> > メール:c...@tamago.soup.jp


> > Web:http://Onpu.jpn.ch/
> > Tw: @TakamiChie ハマっち:16872
> > Skype:TakamiChie

> > 2011/12/07 17:53 "やまだ" <taroyamada...@gmail.com>:

> >> > >> > このグループから退会するには、android-group-j...@googlegroups.comにメールを送信してくださ い。
> >> > >> > 詳細については、http://groups.google.com/group/android-group-japan?hl=ja
> >> からこのグループにアクセスしてください。
>
> >> > > --
> >> > > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> >> > > このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> >> > > このグループから退会するには、android-group-j...@googlegroups.comにメールを送信してくださ い。
> >> > > 詳細については、http://groups.google.com/group/android-group-japan?hl=ja
> >> からこのグループにアクセスしてください。
>
> >> > --
> >> > --
> >> > Toru Tashiro
> >> > toru2...@gmail.com
>
> >> --
> >> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> >> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。

ohisamallc

unread,
Dec 8, 2011, 6:45:05 PM12/8/11
to android-g...@googlegroups.com
山形のohisamaです。
山形は、雪囲いも終わりました。
がんばろう、東北。

android1.6であれなんですが、c2dmか
in-app-billingsが怪しいです。
そのアプリは、android2.2では、ないですか。
そのアプリは、c2dmでは、ないですか。

c2dmは、プッシュだけでなく、ネットワーク
越えのインテントを実現してると聞いてます。
それなら、アプリのインストールも
実装しなければ、辻褄が合いません。

vendor.apkには、INSTALL_PACKAGESの
パーミッションが付いてるはず。
c2dmのインテントをvender.apkが受け取る
パーミションがあるはずです。

android2.2ないので、調査は、継続出来ません。


> -----Original Message-----
> From: android-g...@googlegroups.com
> [mailto:android-g...@googlegroups.com]On Behalf Of やまだ
> Sent: Thursday, December 08, 2011 9:25 AM
> To: 日本Androidの会

> Subject: [work] [android-group-japan: 15659] Re: アプリの自動インストー
> ル
>
>
> 高見様
>
> rootを取得したり、adbを使ったりというのはちょっと無理そうです。
> やはり、妥協してマーケットへ移動させて一つ一つインストールというのが現実的

やまだ

unread,
Dec 13, 2011, 4:51:45 AM12/13/11
to 日本Androidの会
ohisama様

私の調査しているアプリとFast Web Installerについて調べました。
c2dmは使用されていましたが、インストールとは無関係に見えました。

■前者
 起動時に開発者へメッセージを送信しているのみ
 調査目的っぽくみえました。

■Fast Web Installer
 Appリストの同期の為に使用されているように見受けられました。
 webでAppリストが更新されたらc2dmのメッセージを受信してAndroid側のリストも更新という感じです。

vendor.apkにINSTALL_PACKAGESのパーミッションは付いていると思います。
また、webのAndroidマーケットから端末へインストールができるのも
c2dmで必要なIDを渡しているからだと思うのですがいかがでしょうか?

> ...
>
> もっと読む ≫

ohisamallc

unread,
Dec 13, 2011, 9:41:14 PM12/13/11
to android-g...@googlegroups.com
山形のohisamaです。
山形は、晴天です。
がんばろう、東北。

以下のアプリを、インテントフィルターが
見えるように、更新しました。ver1.1
vendor.apkのインテントフィルターにc2dmの
パーミションを発見頂ければ、幸いです。

何度も言いますが、android2.2は持ってないです。

https://market.android.com/developer?pub=Ohisamallc
another package info

> > > > >> > > このグループから退会するには、
> > > android-group-j...@googlegroups.comにメールを送信してくだ
> さ
> > い
> > > 。
> > > > >> > > 詳細については、
> >
> > http://groups.google.com/group/android-group-japan?hl=ja> >> からこのグ

> ープにアクセスしてください。
> >

> > > >> > --
> > > >> > --
> > > >> > Toru Tashiro
> > > >> > toru2...@gmail.com
> >
> > > >> --

> > > >> このメールは Google グループのグループ「日本Androidの会」の登録者に
> 送ら
> > れています。
> > > >> このグループに投稿するには、android-g...@googlegroups.com
> メー
> >

> > ルを送信してください。> >> このグループから退会するには、
> >
> > android-group-j...@googlegroups.comにメールを送信してくださ
> > い。> >> 詳細については、
> >
> > http://groups.google.com/group/android-group-japan?hl=jaからこのグループ
> にア
> > クセスしてください。
> >
> > > >> --
> > > > このメールは Google グループのグループ「日本Androidの会」の登録者に

> ら
> > れています。
> > > > このグループに投稿するには、android-g...@googlegroups.com

> ー
> >
> > ルを送信してください。> > このグループから退会するには、
> >
> > android-group-j...@googlegroups.comにメールを送信してくださ
> > い。
> >
> >
> >
> >
> >
> >
> >
> > ...
> >
> > もっと読む ≫
>

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られ

> います。
> このグループに投稿するには、android-g...@googlegroups.com にメール

やまだ

unread,
Dec 14, 2011, 7:24:56 PM12/14/11
to 日本Androidの会
ohisama様

ご返信有難うございます。
もう一度同じ事を書きます。

c2dmかと思いますが、それにはサーバーへのリクエストが必要ですよね?
それには必要なIDがあり、その中のUserIDをプログラム上で取得する方法がわからないということです。

> い)...
>
> もっと読む ≫

kazutaka kamiya

unread,
Apr 21, 2012, 2:58:16 AM4/21/12
to android-g...@googlegroups.com


2011年12月7日10:25 黒猫ニャモン <kuronek...@gmail.com>:

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msg/android-group-japan/-/CSrsmuIMjDUJ にアクセスしてください。

このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。

このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。



--
神谷です、お疲れ様です。
Reply all
Reply to author
Forward
0 new messages