2017-03-02 9 views
0

私がやりたいことは、オープントラフのショートカットであることをアプリに示す特定のキー値をインテントに渡すことです。 私の場合、アプリケーションはサーバーを継続する前にサーバーからデータをダウンロードする必要があります。私はショートカットをインストール後に利用できるようにしたいので、起動後にこれまでのように動的なショートカットを入れることはできません。 私は意図にキーを置く特別なアクティビティを開いてこれをやろうとしましたが、ユーザーがタップするショートカットを知ることができないため、すべてのショートカットに対して個別に行う必要があります。 プリミティブデータをshortcut.xmlのインテントに配置するにはどうすればよいですか?アプリのショートカットインテントにデータを追加する方法

EDIT_1:トラフカテゴリですか?多分それをやり遂げる一つの方法です。

EDIT_2現在の解決策: xmlファイルのショートカットインテントにカテゴリを入れて解決しました。プリミティブデータをxmlインテントに入れるためのネームスペースを探しています。

答えて

1

Uはprobablly、uはおそらくDynamic ShortCut App

ShortcutManager shortcutManager = getSystemService(ShortcutManager.class); 

    ShortcutInfo shortcut = new ShortcutInfo.Builder(this, "id1") 
     .setShortLabel("Web site") 
     .setLongLabel("Open the web site") 
     .setIcon(Icon.createWithResource(context, R.drawable.icon_website)) 
     //check out this part 
     .setIntent(new Intent(Intent.ACTION_VIEW, 
         Uri.parse("https://www.mysite.example.com/"))) 
     .build(); 

    shortcutManager.setDynamicShortcuts(Arrays.asList(shortcut)); 

用のバンドルを使用して、意図をこのように渡すことができますアンドロイドのマニュアルを確認し、これをチェックダイナミックショートカットを追加する方法を見ている必要があり静的Shorcut uは何かにuはウルのxml shorcut>意図の下での使用にこれを押すshorcut何からアクションを検出しますしたい場合:次に

<intent 
android:action="com.example.whatever.WTF" 
..../> 

をあなたの活動に定数を宣言するとき。

その後
private static final String ACTION_ADD_WTF ="com.example.whatever.WTF"; 

のonCreate()がこの入れながら:アンドロイドで

if (ACTION_ADD_WTF.equals(getIntent().getAction())) { 
      // Invoked via the manifest shortcut. 
      //TODO:put your logic here 
} 

P.DのWTFは悪いと思ういけないひどい何の障害、です! :D

+0

はい、このコードを実行すると、動的ショートカットが追加されます。私は、このショートカットをアプリを起動する必要なくそこに持っていたい。 – parohy

+0

私はちょうど私の答えを更新し、それがuのために働くかどうかを確認します – Catluc

+0

うーん、私は決して行動について考えなかった、明日それを試してみるでしょう。 – parohy

0

あなたが意思のデータのURIを設定したい場合は、静的なXML(https://developer.android.com/guide/topics/ui/shortcuts.html#static)でそれを設定することによって、それを行うことができます:あなたの活動で

... 
<intent 
    android:action="android.intent.action.VIEW" 
    android:targetPackage="com.yourname.yourapp" 
    android:targetClass="com.yourname.yourapp.activities.ShortcutActivity" 
    android:data="content://com.yourname.yourapp/compose/new?from=shortcut" /> 
... 

、あなたはデータのURIを取り戻す:

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    final Uri data = this.getIntent().getData(); 
} 
関連する問題