android权限

Posted zhoudingzhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android权限相关的知识,希望对你有一定的参考价值。

一、WebView 访问internet 的权限:

  1、在layout中增加一个WebView 控件: 

<WebView
android:layout_width="match_parent" //使该控件占满这个手机屏幕
android:layout_height="match_parent"
android:id="@+id/wv"></WebView>

2、 在java 文件中调用WebView 实例访问 URL :

private WebView wv;

wv = (WebView) findViewById(R.id.wv);
wv.loadUrl("http://jikexueyuan.com");

3、WebView 要访问一个网站,需要权限,在 Menifest 中申明 WebView 访问互联网的权限:
  
<uses-permission android:name="android.permission.INTERNET"/>




二、 在APP1中启动另一个APP2的activity:
1、在 APP2 中创建一个Activity ,并在APP2 的 manifest 中申明该 Activity:
<activity
android:name=".MyAty"
android:label="@string/title_activity_my_aty"
android:theme="@style/AppTheme.NoActionBar"
android:permission="com.zhou.componentpermission.permission.MyAty">

<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
<action android:name="com.zhou.componentpermission.intent.action.MyAty"/>
</intent-filter>
</activity>

2、 在APP1 的manifest 中申明使用 APP2 的 MyAty 的权限:
<permission android:name="com.zhou.componentpermission.permission.MyAty"/>
<uses-permission android:name="com.zhou.componentpermission.permission.MyAty"/>

3、 在 APP1 中启动 APP2 的 MyAty:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

findViewById(R.id.btnStartMyAty).setOnClickListener(this);
}

@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btnStartMyAty:
startActivity(new Intent("com.zhou.componentpermission.intent.action.MyAty"));
}
}
}


三、 在同一个APP中给某个方法加上权限:
1、 定义一个 sayHello方法:
public class Hello {

    public  static  final  String PERMISSION_SAY_HELLO = "com.zhou.checkpermissionincode.permission.SAY_HELLO";

    public  static  void sayHello(Context context){
        int checkResult = context.checkCallingOrSelfPermission(PERMISSION_SAY_HELLO);

        if(checkResult != PackageManager.PERMISSION_GRANTED) {
            throw new SecurityException("执行sayHello 方法需要有com.zhou.checkpermissionincode.permission.SAY_HELLO 权限 ");
        }

        System.out.println("hello , jikexueyuan" + PERMISSION_SAY_HELLO);

    }
}

  如果没有权限, 执行if语句,抛出异常,程序终止,不会执行后面的 println 。 

   授权的方法:在manifest 中申明:

<permission android:name="com.zhou.checkpermissionincode.permission.SAY_HELLO"/>;
<uses-permission android:name="com.zhou.checkpermissionincode.permission.SAY_HELLO"/>

以上是关于android权限的主要内容,如果未能解决你的问题,请参考以下文章

在Android Fragment中允许权限导致应用程序崩溃?

无法在 android TV Preferences 片段中找到提供者

Android代码片段

Android课程---Android Studio使用小技巧:提取方法代码片段

Android 实用代码片段

Android 实用代码片段