2017-04-26 4 views
-3

プロジェクトをビルドするときに、アンドロイド4.0.3 IceCreamSandwichを選択します。その後、私はアンドロイドos.6とアンドロイドos.4の両方の電話機にインストールします。私はオペレーティングシステム4のために働くこと、新しいAPIは古いAPIをサポートできないことを認識していますか?それはロジックではない音.........Android OS 6 Marshallowカメラでバージョン4.0.3アプリを実行できませんか?

Andoirdは

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.jackd.testflash_26_4_2017"> 

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

Androidのメイン

package com.example.jackd.testflash_26_4_2017; 

import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.content.pm.PackageManager; 
import android.hardware.Camera; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 
    private Camera camera; 
    private Camera.Parameters params; 
    Button btnFlash; 
    TextView txtArea,txtArea2; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     btnFlash = (Button) findViewById(R.id.btnFlash); 

     final String myString = "110101010101"; 
     final long blinkDelay = 50; 



    btnFlash.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      for(int i = 0;i<myString.length();i++){ 

       if(myString.charAt(i) == '0'){ 

        params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); 
        camera.setParameters(params); 
        camera.startPreview(); 
       } 
       else{ 
        params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); 
        camera.setParameters(params); 
        camera.stopPreview(); 
       } 
       try{ 
        Thread.sleep(blinkDelay); 
       }catch(InterruptedException e){ 
        e.printStackTrace(); 
       } 
      } 
     } 
    }); 
    if (isFlashSupported()) { 
     camera = Camera.open(); 
     params = camera.getParameters(); 
    } else { 
     showNoFlashAlert(); 
    } 
} 


private void showNoFlashAlert() { 
    new AlertDialog.Builder(this) 
      .setMessage("Your device hardware does not support flashlight!") 
      .setIcon(android.R.drawable.ic_dialog_alert).setTitle("Error") 
      .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
        finish(); 
       } 
      }).show(); 
} 
private boolean isFlashSupported() { 
    PackageManager pm = getPackageManager(); 
    return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); 
} 
@Override 
protected void onDestroy() { 
    if(camera != null){ 
     camera.stopPreview(); 
     camera.release(); 
     camera = null; 
    } 
    super.onDestroy(); 
} 

} 

のAndroid XMLレイアウト

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.jackd.testflash_26_4_2017.MainActivity"> 


<Button 
    android:text="Button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/btnFlash" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="124dp" /> 


</RelativeLayout> 

PSをmanifast :私はすべてのpermisを開いているカメラハードウェアのためのシオン。 OS6では、手動で開く必要がある、私はそれをやった!

質問に戻ると、バージョン6のマシュマロアンドロイドはバージョン4のiceCreamSandwithをサポートできませんか?しかし、論理的に高いバージョンは、より低いバージョンをサポートする必要があります....助けてくれてありがとう!

答えて

0

Androidデベロッパー:アンドロイド6.0(APIレベル23)で始まり

彼らはアプリをインストールするときにアプリがなく、実行されている間、ユーザーは アプリケーションに権限を付与します。

あなたはより多くの情報のためにこれを確認することができます。

https://developer.android.com/training/permissions/requesting.html

関連する問題