1.自定义权限
应用程序之间或同应用的activity\service中发送一个广播。
以应用程序之间为例:
/**这是发送广播的应用程序*/
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void send(View v) {
Intent intent = new Intent();
intent.setAction("permission");
String receiverPermission = "me.android.receiver.permission";
sendBroadcast(intent, receiverPermission);
}
}
在清单文件中
<!-- 添加自定义权限 -->
<permission android:name="me.android.receiver.permission" >
</permission>
<!-- 使用自定义权限 -->
<uses-permission android:name="me.android.receiver.permission" />
/**这是接受广播的应用程序*/
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "自定义权限添加成功", 0).show();
}
}
在清单文件中
<!-- 使用自定义权限 -->
<uses-permission android:name="me.android.receiver.permission" />
<receiver
android:name="com.itheima.receiver.MyBroadcastReceiver"
android:permission="me.android.receiver.permission" >
<!-- android:permission="me.android.receiver.permission" 可写可不写,写了不会有黄色警告线 -->
<intent-filter>
<action android:name="permission" />
</intent-filter>
</receiver>
自定义权限的权限组和级别
<permission android:name="com.example.myapp.permission.DEADLY_ACTIVITY"
android:label="@string/label"
android:description="@string/description"
android:permissionGroup="android.permission-group.ME"
android:protectionLevel="dangerous" />
android:permissionGroup:定义权限组(自定义)
android:protectionLevel:定义安全级别(normal和dangerous)
注意:该系统不允许多个包以相同的名称声明一个权限,除非所有的包都与相同的证书签名。
自定义权限的权限组和级别
<permission android:name="com.example.myapp.permission.DEADLY_ACTIVITY"
android:label="@string/label"
android:description="@string/description"
android:permissionGroup="android.permission-group.ME"
android:protectionLevel="dangerous" />
android:permissionGroup:定义权限组(自定义)
android:protectionLevel:定义安全级别(normal和dangerous)
注意:该系统不允许多个包以相同的名称声明一个权限,除非所有的包都与相同的证书签名。