发送意图使用控制台包发送意图使用控制台包(Sending intent with bundle us

2019-05-12 09:59发布

我开发一个Android应用程序侦听包含了一些数据捆绑具体意图。 我想利用亚洲开发银行的意图发送到我的应用程序。 我曾尝试用:

adb shell am startservice -a com.INTENT_NAME -e myBundleName myBundleData com.pkg/com.pkg.cls

但我的应用程序认定它为字符串列表而不是一个包。 有谁知道如何发送使用时的应用程序软件包意图是什么? 不幸的文件说,只有大约发送字符串或数字,一无所知束的名单。

Answer 1:

根据源代码 am没有接受的输入数据的方式bundle

更新:在Android中7.0意图参数解析代码已被移动从Am.java到Intent.java并支持多种数据类型(如Array[]ArrayList<>基本类型的)已被加入。 遗憾的是仍然没有为不支持Bundle式群众演员am命令。



Answer 2:

我正面临同样的问题,试图伪装,你刚刚收到Facebook应用邀请后安装的应用情况。 无法获取shell来工作,最终建立一个非常简单的试验台是有一个按钮和处理程序代码,如:

    Button button  = (Button)findViewById(R.id.trigger_button);
    button.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            Intent intent = new Intent();
            intent.setAction("android.intent.action.VIEW");
            intent.setData(Uri.parse("myapp://fb-app-invite"));

            Bundle bundle = new Bundle();
            bundle.putString("target_url", "myapp://fb-app-invite?fromuser=673");
            intent.putExtra("al_applink_data", bundle);

            MainActivity.this.startActivity(intent);
        }
    });


Answer 3:

您可以使用下面的命令来启动它:亚行外壳上午startservice -a android.intent.action.MAIN -e“键”,“值” -n com.example.test / .TestService键和值应该是你的包,你值想送。 TestService的应该是你的服务名称添加为您在AndroidManifest.xml片段服务:

<service android:name=".TestService" android:enabled="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>

</service>


文章来源: Sending intent with bundle using console