編輯:Android開發實例
大家好,今天給大家簡單分享一下Android中自定義action與permission. 我們在實際開發中,經常會用到系統的功能,比如打電話功能只要如以下簡單代碼:
- Uri uri = Uri.parse("tel.xxxxxx");
- Intent it =new Intent(Intent.ACTION_CALL,uri);
- startActivity(it);
並且在AndroidManifest.xml文件中添加如下權限:
- <uses-permission id="android .permission.CALL_PHONE" />
下面我將實例給大家分享一下自定義action與permission.實例有兩個Android工程Demo,與Demo2. Demo工程有兩個Activity一個是主Activity,另一個是ViewActivity,這個Activity我們給自定義了android.tutor.action.VIEW的action以及com.tutor.permission.VIEW的permission。
另一個Demo2的主Activity去調用Demo裡的ViewActivity,代碼如下:
- Intent mIntent = new Intent();
- mIntent.setAction("android.tutor.action.VIEW");
- startActivity(mIntent);
並且要在AndroidMainfest.xml添加以下權限:
- <uses-permission android:name="com.tutor.permission.VIEW"></uses-permission>
下面是具體步驟如下:
第一步:新建第一個Android工程Demo.目錄結構如下:
第二步:新建名為ViewActivity的Activity,代碼如下:
- package com.tutor.demo;
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.TextView;
- public class ViewActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- TextView mTextView = new TextView(this);
- mTextView.setText("我是自定義action並且加了權限的Activity.");
- setContentView(mTextView);
- }
- }
第三步:在AndroidMainfest.xml中定義action與permission,代碼如下:
第6,7,20行代碼定義了permission,第18-21行定義了action.第28行是同一個android工程訪問ViewActivity也要申請權限.
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.tutor.demo"
- android:versionCode="1"
- android:versionName="1.0">
- <permission android:protectionLevel="normal" android:name="com.tutor.permission.VIEW">
- </permission>
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".Demo"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity android:name=".ViewActivity"
- android:label="自定義action與permission"
- android:permission="com.tutor.permission.VIEW"
- >
- <intent-filter>
- <action android:name="android.tutor.action.VIEW" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
- </activity>
- </application>
- <uses-permission android:name="com.tutor.permission.VIEW"></uses-permission>
- </manifest>
第四步:修改主Activity,Demo.java代碼如下(在onCreate()裡去跳轉到ViewActivity,也需要申請權限的如上面的第28行代碼):
- package com.tutor.demo;
- import com.tutor.demo.R;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- public class Demo extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //跳轉ViewActivity
- Intent mIntent = new Intent();
- mIntent.setAction("android.tutor.action.VIEW");
- startActivity(mIntent);
- }
- }
第五步:運行Demo工程,效果如下圖:
上面是同一個Android工程裡訪問ViewActivity的情形,下面我們新建一個Demo2的android工程,去調用ViewActivity.
Demo2.java代碼如下:
- package com.tutor.demo2;
- import com.tutor.demo2.R;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- public class Demo2 extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //訪問應用demo裡的ViewActivity
- Intent mIntent = new Intent();
- mIntent.setAction("android.tutor.action.VIEW");
- startActivity(mIntent);
- }
- }
在Demo2工程裡的AndroidMainifest.xml中申請權限,不加權限程序會報錯,代碼如下:
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.tutor.demo2"
- android:versionCode="1"
- android:versionName="1.0">
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".Demo2"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- <uses-permission android:name="com.tutor.permission.VIEW"></uses-permission>
- </manifest>
運行之效果如下圖所示:
一樣的效果,呵呵,ok,今天就先講到這裡。
Broadcast Receiver簡介 Broadcast Receiver是Android的五大組件之一,使用頻率也很高。 用於異步接收廣播Intent,廣播
在很多電商網頁及app上都有自動切換的商品的推廣快,感覺體驗挺不錯的,正好今天學習使用ViewPager,因此也實現了一個功能類似的demo。 下面是其中的兩個截
在Android中使用ImageView顯示圖片的時候發現圖片顯示不正,方向偏了或者倒過來了。 解決這個問題很自然想到的分兩步走: 1、自動識別圖像方向,計算旋轉
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我