我开发一个Android应用程序侦听包含了一些数据捆绑具体意图。 我想利用亚洲开发银行的意图发送到我的应用程序。 我曾尝试用:
adb shell am startservice -a com.INTENT_NAME -e myBundleName myBundleData com.pkg/com.pkg.cls
但我的应用程序认定它为字符串列表而不是一个包。 有谁知道如何发送使用时的应用程序软件包意图是什么? 不幸的文件说,只有大约发送字符串或数字,一无所知束的名单。
我开发一个Android应用程序侦听包含了一些数据捆绑具体意图。 我想利用亚洲开发银行的意图发送到我的应用程序。 我曾尝试用:
adb shell am startservice -a com.INTENT_NAME -e myBundleName myBundleData com.pkg/com.pkg.cls
但我的应用程序认定它为字符串列表而不是一个包。 有谁知道如何发送使用时的应用程序软件包意图是什么? 不幸的文件说,只有大约发送字符串或数字,一无所知束的名单。
根据源代码 am
没有接受的输入数据的方式bundle
型
更新:在Android中7.0意图参数解析代码已被移动从Am.java到Intent.java并支持多种数据类型(如Array[]
和ArrayList<>
基本类型的)已被加入。 遗憾的是仍然没有为不支持Bundle
式群众演员am
命令。
我正面临同样的问题,试图伪装,你刚刚收到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);
}
});
您可以使用下面的命令来启动它:亚行外壳上午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>