自定义权限实现不同程序间的调用

来源:互联网 发布:mysql join 编辑:程序博客网 时间:2024/06/04 19:37

Android中要想实现不同程序间的调用,需要自定义权限。

举例说明:App1,App2。其中App2调用App1。

App2不能直接调用App1中的组件(比如:Activity),需要App2添加调用App1的权限。

App1的manifest文件中可以先声明自定义权限,然后在配置组件时,比如Activity时:

<!-声明自定义权限,其中只有name属性是必须的,其他可选,不写的话,系统使用默认值->
<permission
        android:name="com.lyc.test"
        android:label="@string/app_name"
        android:permissionGroup="@string/hello_world"
        android:protectionLevel="normal" >
</permission>
下面的配置组件,如Activity时,可以配置自定义权限
<activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main"
            android:permission="com.lzx.permission.test">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>

注意:此时要先部署App1,然后App2在部署后才能调用App1的MainActivity。此时部署App1时发现虽然MainActivity是入口Activity,但是并没有启动,是因为配置了自定义权限的原因,此时要想启动MainActivity,则需要有配置的自定义权限才行。

在App2中添加自定义权限。

<uses-permission android:name="com.lyc.test" />
此时部署App2,并通过设置点击按钮调用App1的MainActivity,可以成功。

((Button) findViewById(R.id.button1)).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.setClassName("com.example.app1",
"com.example.app1.MainActivity");
startActivity(intent);
}
});

0 0
原创粉丝点击