1.在配置文件AndroidMenifest.xml文件中增加下配置
<intent-filter >
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<!-- 该值可以字符 使用的时候传送的Uri值的开头必须跟此值相同-->
<data android:scheme="test"/>
</intent-filter>
<activity
android:name="com.example.pushtest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter >
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<!-- 该值可以字符 使用的时候传送的Uri值的开头必须跟此值相同-->
<data android:scheme="test"/>
</intent-filter>
</activity>
2.在需要启动该Activity的地方传入Uri值,如下
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
//如非特别需求,只需保证"test"与配置中的Scheme值相同即可,"://"后面可以任意
intent.setData(Uri.parse("test"+"://112345678"));
startActivity(intent);
3.在需要启动的Activity中,如需要获取scheme及Uri的全路径,可以使用如下方法:
Intent intent = getIntent();
String scheme = intent.getScheme();//获取Scheme全名称
String uriPath = intent.getDataString();//获取Uri的全路径
例如,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// this.requestWindowFeature(Window.FEATURE_NO_TITLE);
// getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
String scheme = getIntent().getScheme();
String uriPath = getIntent().getDataString();
System.out.println("scheme::-->"+scheme+",uriPath:::"+uriPath);
}