ADB

2013-01-19 9 views
5
経由のAndroidにショートカットを作成

それは私のアンドロイドのランチャーにADBからショートカットを作成することは可能でしょうか? は、私は(ダブルクリックを介して)私のPCから自分のアプリケーションをインストールする.batファイルを持っていますが、この後、私はランチャーの巨大な(ユーザーフレンドリーではないので)アプリケーションのリストを検索することが常に必要です。この機能を私の.batファイルに追加することができれば素晴らしいと思います。 私はすでに運がないままウェブで検索しようとしています。事前ADB

+1

あなたは '経由のadbシェルbroadcast'呼び出すことができると、比較的よく文書' com.android.launcher.action.INSTALL_SHORTCUT'ありますが、しかし、1つのエキストラは、打ち上げの意図です。それをコマンドラインに置くことができない場合は、その意図をブロードキャストし、インストールし、起動し、コマンドラインからアンインストールするスタブアプリを作成することができます。 – 323go

答えて

7

おかげでこれを処理するためのいくつかの方法があります。再編集を行うたびにアプリケーションをすばやく開始できるようにする必要がある場合は、adb shell am intent -n com.example.app/.Appが最も簡単な解決策です。

あなただけのショートカットを作るために(そして、あなたがどこ気にしない)誰もが言うようにcom.android.launcher.action.INSTALL_SHORTCUTを使用したい場合。 am放送は入れ子にされた意図を取らないので、あなたはそれを行うためのアプリまたはビンが必要です。

あなたは(ADWランチャーのような)特定のランチャーで作業している場合は、ショートカットのデータベースをハックすることができます。これは、あなたが

adb shell sqlite3 /data/data/org.adw.launcher/databases/launcher.db "DELETE FROM favorites WHERE _id=1; INSERT INTO favorites VALUES(1,'MyApp','#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.example.app/.App;end',-100,0,2,3,1,1,0,-1,NULL,0,NULL,NULL,NULL,NULL,NULL);" 

あなたは、データベースからリフレッシュするためにランチャーを伝える必要があります(この場合は[2、3])のショートカットの座標を指定することができます。通常、唯一の方法はランチャーを殺すことです。以降のバージョンのam(ActivityManagerシェルコマンド)には、パッケージを再起動するためのオプションがあります。その場合、あなたは小さなアプリ記述する必要があると思います:

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
am.restartPackage("org.adw.launcher"); 
+0

コードでショートカットを作成したいのですが、特定のランチャーアプリとその中の特定のアクティビティにショートカットを作成したいのですが? –

+0

上記のコードはすべて、特定のアプリ内の特定のアクティビティを参照しています。私はADWの経験があるだけで、他のランチャーは情報をどこかに格納する必要があります。間違いなくデータベースです。 – Renate

+0

はい、私はそれについての投稿をしました。ここに:http://stackoverflow.com/questions/21394477/how-to-create-a-shortcut-of-an-app-on-a-specific-launcher-app。コメントの1つに答えがあります。 –